2019-02-02 18:54:01 +03:00
import urllib
2019-03-03 15:38:53 +03:00
from datetime import datetime , timedelta
2019-02-21 02:13:18 +03:00
import database
2019-03-11 22:04:23 +03:00
from utilities import clock
2019-02-02 18:54:01 +03:00
2019-03-03 23:22:42 +03:00
from htmlmodules import module_scrobblelist , module_pulse , module_artistcharts_tiles , module_trackcharts_tiles
2019-02-20 20:22:45 +03:00
2019-03-18 22:30:28 +03:00
2019-02-21 11:43:35 +03:00
def instructions ( keys ) :
2019-02-21 02:13:18 +03:00
2019-03-04 15:43:19 +03:00
# get start of week
tod = datetime . utcnow ( )
change = ( tod . weekday ( ) + 1 ) % 7
d = timedelta ( days = change )
newdate = tod - d
weekstart = [ newdate . year , newdate . month , newdate . day ]
2019-03-11 22:04:23 +03:00
clock ( )
2019-02-02 20:08:30 +03:00
# artists
2019-03-18 22:30:28 +03:00
2019-03-03 23:22:42 +03:00
topartists_total = module_artistcharts_tiles ( )
topartists_year = module_artistcharts_tiles ( since = " year " )
topartists_month = module_artistcharts_tiles ( since = " month " )
2019-03-04 15:43:19 +03:00
topartists_week = module_artistcharts_tiles ( since = weekstart )
2019-03-18 22:30:28 +03:00
2019-03-11 22:04:23 +03:00
clock ( " Artists " )
2019-02-02 20:08:30 +03:00
# tracks
2019-03-18 22:30:28 +03:00
2019-03-03 23:22:42 +03:00
toptracks_total = module_trackcharts_tiles ( )
toptracks_year = module_trackcharts_tiles ( since = " year " )
toptracks_month = module_trackcharts_tiles ( since = " month " )
2019-03-04 15:43:19 +03:00
toptracks_week = module_trackcharts_tiles ( since = weekstart )
2019-03-18 22:30:28 +03:00
2019-03-11 22:04:23 +03:00
clock ( " Tracks " )
2019-03-04 15:43:19 +03:00
# scrobbles
2019-03-12 14:56:53 +03:00
html_scrobbles , _ , _ = module_scrobblelist ( max_ = 15 , shortTimeDesc = True , pictures = True , earlystop = True )
2019-03-18 22:30:28 +03:00
2019-03-11 22:04:23 +03:00
clock ( " Scrobbles " )
2019-03-18 22:30:28 +03:00
2019-03-04 15:43:19 +03:00
# stats
2019-03-18 22:30:28 +03:00
2019-03-12 18:06:09 +03:00
#(amount_day,amount_month,amount_year,amount_total) = database.get_scrobbles_num_multiple(("today","month","year",None))
#amount_month += amount_day
#amount_year += amount_month
#amount_total += amount_year
2019-03-18 22:30:28 +03:00
2019-03-12 18:06:09 +03:00
amount_day = database . get_scrobbles_num ( since = " today " )
scrobbles_today = " <a href= ' /scrobbles?since=today ' > " + str ( amount_day ) + " </a> "
2019-03-18 22:30:28 +03:00
2019-03-12 18:06:09 +03:00
amount_month = database . get_scrobbles_num ( since = " month " )
scrobbles_month = " <a href= ' /scrobbles?since=month ' > " + str ( amount_month ) + " </a> "
2019-02-21 02:13:18 +03:00
2019-03-12 18:06:09 +03:00
amount_year = database . get_scrobbles_num ( since = " year " )
scrobbles_year = " <a href= ' /scrobbles?since=year ' > " + str ( amount_year ) + " </a> "
2019-02-21 02:13:18 +03:00
2019-03-12 18:06:09 +03:00
amount_total = database . get_scrobbles_num ( )
scrobbles_total = " <a href= ' /scrobbles ' > " + str ( amount_total ) + " </a> "
2019-03-18 22:30:28 +03:00
2019-03-11 22:04:23 +03:00
clock ( " Amounts " )
2019-03-18 22:30:28 +03:00
2019-03-04 15:43:19 +03:00
# pulse
2019-02-18 19:22:44 +03:00
dt = datetime . utcnow ( )
2019-03-03 15:38:53 +03:00
first_month = [ dt . year - 1 , dt . month + 1 ]
2019-03-18 22:30:28 +03:00
dt_firstweek = dt - timedelta ( 11 * 7 ) - timedelta ( ( tod . weekday ( ) + 1 ) % 7 )
2019-03-03 15:38:53 +03:00
first_week = [ dt_firstweek . year , dt_firstweek . month , dt_firstweek . day ]
dt_firstday = dt - timedelta ( 6 )
first_day = [ dt_firstday . year , dt_firstday . month , dt_firstday . day ]
first_year = [ dt . year - 9 ]
if first_month [ 1 ] > 12 : first_month = [ first_month [ 0 ] + 1 , first_month [ 1 ] - 12 ]
2019-03-18 22:30:28 +03:00
2019-03-03 15:38:53 +03:00
html_pulse_days = module_pulse ( max_ = 7 , since = first_day , step = " day " , trail = 1 )
html_pulse_weeks = module_pulse ( max_ = 12 , since = first_week , step = " week " , trail = 1 )
2019-03-18 22:30:28 +03:00
html_pulse_months = module_pulse ( max_ = 12 , since = first_month , step = " month " , trail = 1 )
2019-03-03 15:38:53 +03:00
html_pulse_years = module_pulse ( max_ = 10 , since = first_year , step = " year " , trail = 1 )
2019-03-18 22:30:28 +03:00
2019-03-10 19:38:33 +03:00
#html_pulse_week = module_pulse(max_=7,since=weekstart,step="day",trail=1)
#html_pulse_month = module_pulse(max_=30,since=[dt.year,dt.month],step="day",trail=1)
#html_pulse_year = module_pulse(max_=12,since=[dt.year],step="month",trail=1)
2019-02-21 02:13:18 +03:00
2019-03-11 22:04:23 +03:00
clock ( " Pulse " )
2019-03-04 15:43:19 +03:00
2019-03-03 23:22:42 +03:00
#pushresources = [{"file":img,"type":"image"} for img in artistimages + trackimages] #can't push scrobble images as we don't get them from the module function, need to think about that
pushresources = [ ]
2019-02-04 15:45:51 +03:00
2019-03-03 23:22:42 +03:00
replace = {
# "KEY_ARTISTIMAGE":artistimages,"KEY_ARTISTNAME":artisttitles,"KEY_ARTISTLINK":artistlinks,"KEY_POSITION_ARTIST":posrange,
# "KEY_TRACKIMAGE":trackimages,"KEY_TRACKNAME":tracktitles,"KEY_TRACKLINK":tracklinks,"KEY_POSITION_TRACK":posrange,
2019-03-12 01:39:46 +03:00
# "KEY_SCROBBLE_TIME":scrobbletimes,"KEY_SCROBBLE_ARTISTS":scrobbleartists,"KEY_SCROBBLE_TITLE":scrobbletracklinks,"KEY_SCROBBLE_IMAGE":scrobbleimages,
# "KEY_PULSE_TERM":pulse_rangedescs,"KEY_PULSE_AMOUNT":pulse_amounts,"KEY_PULSE_BAR":pulse_bars
2019-03-03 23:31:48 +03:00
" KEY_TOPARTISTS_TOTAL " : topartists_total , " KEY_TOPARTISTS_YEAR " : topartists_year , " KEY_TOPARTISTS_MONTH " : topartists_month , " KEY_TOPARTISTS_WEEK " : topartists_week ,
" KEY_TOPTRACKS_TOTAL " : toptracks_total , " KEY_TOPTRACKS_YEAR " : toptracks_year , " KEY_TOPTRACKS_MONTH " : toptracks_month , " KEY_TOPTRACKS_WEEK " : toptracks_week ,
2019-03-12 01:39:46 +03:00
" KEY_SCROBBLE_NUM_TODAY " : scrobbles_today , " KEY_SCROBBLE_NUM_MONTH " : scrobbles_month , " KEY_SCROBBLE_NUM_YEAR " : scrobbles_year , " KEY_SCROBBLE_NUM_TOTAL " : scrobbles_total ,
2019-02-20 20:22:45 +03:00
" KEY_SCROBBLES " : html_scrobbles ,
2019-03-10 19:38:33 +03:00
" KEY_PULSE_MONTHS " : html_pulse_months , " KEY_PULSE_YEARS " : html_pulse_years , " KEY_PULSE_DAYS " : html_pulse_days , " KEY_PULSE_WEEKS " : html_pulse_weeks ,
#"KEY_PULSE_YEAR":html_pulse_year,"KEY_PULSE_MONTH":html_pulse_month,"KEY_PULSE_WEEK":html_pulse_week
2019-02-20 20:22:45 +03:00
}
2019-02-02 18:54:01 +03:00
2019-03-18 22:30:28 +03:00
return ( replace , pushresources )