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-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-02-02 18:54:01 +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-02-02 20:08:30 +03:00
# artists
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-02-02 18:54:01 +03:00
2019-02-02 20:08:30 +03:00
# tracks
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-02-02 20:08:30 +03:00
2019-03-04 15:43:19 +03:00
# scrobbles
2019-02-20 20:22:45 +03:00
html_scrobbles , _ , _ = module_scrobblelist ( max_ = 15 , shortTimeDesc = True , pictures = True )
2019-02-03 18:52:37 +03:00
2019-02-02 20:08:30 +03:00
2019-03-04 15:43:19 +03:00
# stats
2019-02-21 02:13:18 +03:00
amount = database . get_scrobbles_num ( since = " today " )
scrobbles_today = " <a href= ' /scrobbles?since=today ' > " + str ( amount ) + " </a> "
2019-02-02 20:08:30 +03:00
2019-02-21 02:13:18 +03:00
amount = database . get_scrobbles_num ( since = " month " )
scrobbles_month = " <a href= ' /scrobbles?since=month ' > " + str ( amount ) + " </a> "
amount = database . get_scrobbles_num ( since = " year " )
scrobbles_year = " <a href= ' /scrobbles?since=year ' > " + str ( amount ) + " </a> "
amount = database . get_scrobbles_num ( )
scrobbles_total = " <a href= ' /scrobbles ' > " + str ( amount ) + " </a> "
2019-02-02 18:54:01 +03:00
2019-02-15 17:18:57 +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 ]
dt_firstweek = dt - timedelta ( 11 * 7 ) - timedelta ( ( 6 - dt . weekday ( ) ) )
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-02-18 19:22:44 +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 )
html_pulse_months = module_pulse ( max_ = 12 , since = first_month , step = " month " , trail = 1 )
html_pulse_years = module_pulse ( max_ = 10 , since = first_year , step = " year " , trail = 1 )
2019-02-21 02:13:18 +03:00
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-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-02-03 18:52:37 +03:00
" KEY_SCROBBLES_TODAY " : scrobbles_today , " KEY_SCROBBLES_MONTH " : scrobbles_month , " KEY_SCROBBLES_YEAR " : scrobbles_year , " KEY_SCROBBLES_TOTAL " : scrobbles_total ,
2019-02-20 20:22:45 +03:00
#"KEY_SCROBBLE_TIME":scrobbletimes,"KEY_SCROBBLE_ARTISTS":scrobbleartists,"KEY_SCROBBLE_TITLE":scrobbletracklinks,"KEY_SCROBBLE_IMAGE":scrobbleimages,
" KEY_SCROBBLES " : html_scrobbles ,
#"KEY_PULSE_TERM":pulse_rangedescs,"KEY_PULSE_AMOUNT":pulse_amounts,"KEY_PULSE_BAR":pulse_bars
2019-03-03 15:38:53 +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
2019-02-20 20:22:45 +03:00
}
2019-02-17 16:25:40 +03:00
return ( replace , pushresources )
2019-02-02 18:54:01 +03:00