mirror of
https://github.com/evilhero/mylar
synced 2025-02-24 23:02:23 +00:00
FIX:(#1601) Fix for weekly directory not being used new formatting when post-processing items
This commit is contained in:
parent
e7f4a5b8ad
commit
13246bb144
3 changed files with 98 additions and 93 deletions
|
@ -16,6 +16,7 @@
|
|||
import time
|
||||
from operator import itemgetter
|
||||
import datetime
|
||||
from datetime import timedelta
|
||||
import re
|
||||
import platform
|
||||
import itertools
|
||||
|
@ -2404,6 +2405,77 @@ def arcformat(arc, spanyears, publisher):
|
|||
|
||||
return dstloc
|
||||
|
||||
def weekly_info(week=None, year=None):
|
||||
#find the current week and save it as a reference point.
|
||||
todaydate = datetime.datetime.today()
|
||||
current_weeknumber = todaydate.strftime("%U")
|
||||
|
||||
|
||||
if week:
|
||||
weeknumber = int(week)
|
||||
year = int(year)
|
||||
#view specific week (prev_week, next_week)
|
||||
startofyear = date(year,1,1)
|
||||
week0 = startofyear - timedelta(days=startofyear.isoweekday())
|
||||
stweek = datetime.datetime.strptime(week0.strftime('%Y-%m-%d'), '%Y-%m-%d')
|
||||
startweek = stweek + timedelta(weeks = weeknumber)
|
||||
midweek = startweek + timedelta(days = 3)
|
||||
endweek = startweek + timedelta(days = 6)
|
||||
else:
|
||||
#find the given week number for the current day
|
||||
weeknumber = current_weeknumber
|
||||
stweek = datetime.datetime.strptime(todaydate.strftime('%Y-%m-%d'), '%Y-%m-%d')
|
||||
startweek = stweek - timedelta(days = (stweek.weekday() + 1) % 7)
|
||||
midweek = startweek + timedelta(days = 3)
|
||||
endweek = startweek + timedelta(days = 6)
|
||||
year = todaydate.strftime("%Y")
|
||||
|
||||
prev_week = int(weeknumber) - 1
|
||||
prev_year = year
|
||||
if prev_week == 0:
|
||||
prev_week = 52
|
||||
prev_year = int(year) - 1
|
||||
|
||||
next_week = int(weeknumber) + 1
|
||||
next_year = year
|
||||
if next_week == 53:
|
||||
next_week = 1
|
||||
next_year = int(year) + 1
|
||||
|
||||
date_fmt = "%B %d, %Y"
|
||||
try:
|
||||
con_startweek = u"" + startweek.strftime(date_fmt).decode('utf-8')
|
||||
con_endweek = u"" + endweek.strftime(date_fmt).decode('utf-8')
|
||||
except:
|
||||
con_startweek = u"" + startweek.strftime(date_fmt).decode('cp1252')
|
||||
con_endweek = u"" + endweek.strftime(date_fmt).decode('cp1252')
|
||||
|
||||
if mylar.WEEKFOLDER_LOC is not None:
|
||||
weekdst = mylar.WEEKFOLDER_LOC
|
||||
else:
|
||||
weekdst = mylar.DESTINATION_DIR
|
||||
|
||||
weekinfo = {'weeknumber': weeknumber,
|
||||
'startweek': con_startweek,
|
||||
'midweek': midweek.strftime('%Y-%m-%d'),
|
||||
'endweek': con_endweek,
|
||||
'year': year,
|
||||
'prev_weeknumber': prev_week,
|
||||
'prev_year': prev_year,
|
||||
'next_weeknumber': next_week,
|
||||
'next_year': next_year,
|
||||
'current_weeknumber': current_weeknumber,
|
||||
'last_update': mylar.PULL_REFRESH}
|
||||
|
||||
if mylar.WEEKFOLDER_FORMAT == 0:
|
||||
weekfold = os.path.join(weekdst, str( str(weekinfo['year']) + '-' + str(weeknumber) ))
|
||||
else:
|
||||
weekfold = os.path.join(weekdst, str( str(weekinfo['midweek']) ))
|
||||
|
||||
weekinfo['week_folder'] = weekfold
|
||||
|
||||
return weekinfo
|
||||
|
||||
def latestdate_update():
|
||||
import db
|
||||
myDB = db.DBConnection()
|
||||
|
|
|
@ -1558,95 +1558,31 @@ class WebInterface(object):
|
|||
weeklyresults = []
|
||||
wantedcount = 0
|
||||
|
||||
#find the current week and save it as a reference point.
|
||||
todaydate = datetime.datetime.today()
|
||||
current_weeknumber = todaydate.strftime("%U")
|
||||
|
||||
if week:
|
||||
weeknumber = int(week)
|
||||
year = int(year)
|
||||
#view specific week (prev_week, next_week)
|
||||
startofyear = date(year,1,1)
|
||||
week0 = startofyear - timedelta(days=startofyear.isoweekday())
|
||||
stweek = datetime.datetime.strptime(week0.strftime('%Y-%m-%d'), '%Y-%m-%d')
|
||||
startweek = stweek + timedelta(weeks = weeknumber)
|
||||
midweek = startweek + timedelta(days = 3)
|
||||
endweek = startweek + timedelta(days = 6)
|
||||
else:
|
||||
#find the given week number for the current day
|
||||
weeknumber = current_weeknumber
|
||||
stweek = datetime.datetime.strptime(todaydate.strftime('%Y-%m-%d'), '%Y-%m-%d')
|
||||
startweek = stweek - timedelta(days = (stweek.weekday() + 1) % 7)
|
||||
midweek = startweek + timedelta(days = 3)
|
||||
endweek = startweek + timedelta(days = 6)
|
||||
year = todaydate.strftime("%Y")
|
||||
|
||||
prev_week = int(weeknumber) - 1
|
||||
prev_year = year
|
||||
if prev_week == 0:
|
||||
prev_week = 52
|
||||
prev_year = int(year) - 1
|
||||
|
||||
next_week = int(weeknumber) + 1
|
||||
next_year = year
|
||||
if next_week == 53:
|
||||
next_week = 1
|
||||
next_year = int(year) + 1
|
||||
|
||||
date_fmt = "%B %d, %Y"
|
||||
|
||||
try:
|
||||
con_startweek = u"" + startweek.strftime(date_fmt).decode('utf-8')
|
||||
con_endweek = u"" + endweek.strftime(date_fmt).decode('utf-8')
|
||||
except:
|
||||
con_startweek = u"" + startweek.strftime(date_fmt).decode('cp1252')
|
||||
con_endweek = u"" + endweek.strftime(date_fmt).decode('cp1252')
|
||||
|
||||
weekinfo = {'weeknumber': weeknumber,
|
||||
'startweek': con_startweek,
|
||||
'midweek': midweek.strftime('%Y-%m-%d'),
|
||||
'endweek': con_endweek,
|
||||
'year': year,
|
||||
'prev_weeknumber': prev_week,
|
||||
'prev_year': prev_year,
|
||||
'next_weeknumber': next_week,
|
||||
'next_year': next_year,
|
||||
'current_weeknumber': current_weeknumber,
|
||||
'last_update': mylar.PULL_REFRESH}
|
||||
|
||||
if mylar.WEEKFOLDER_LOC is not None:
|
||||
weekdst = mylar.WEEKFOLDER_LOC
|
||||
else:
|
||||
weekdst = mylar.DESTINATION_DIR
|
||||
|
||||
if mylar.WEEKFOLDER_FORMAT == 0:
|
||||
weekfold = os.path.join(weekdst, str( str(weekinfo['year']) + '-' + str(weeknumber) ))
|
||||
else:
|
||||
weekfold = os.path.join(weekdst, str( str(weekinfo['midweek']) ))
|
||||
weekinfo = helpers.weekly_info(week, year)
|
||||
|
||||
popit = myDB.select("SELECT * FROM sqlite_master WHERE name='weekly' and type='table'")
|
||||
if popit:
|
||||
w_results = myDB.select("SELECT * from weekly WHERE weeknumber=? AND year=?", [int(weeknumber),year])
|
||||
w_results = myDB.select("SELECT * from weekly WHERE weeknumber=? AND year=?", [int(weekinfo['weeknumber']),weekinfo['year']])
|
||||
if len(w_results) == 0:
|
||||
logger.info('trying to repopulate to week: ' + str(weeknumber) + '-' + str(year))
|
||||
repoll = self.manualpull(weeknumber=weeknumber,year=year)
|
||||
logger.info('trying to repopulate to week: ' + str(weekinfo['weeknumber']) + '-' + str(weekinfo['year']))
|
||||
repoll = self.manualpull(weeknumber=weekinfo['weeknumber'],year=weekinfo['year'])
|
||||
if repoll['status'] == 'success':
|
||||
w_results = myDB.select("SELECT * from weekly WHERE weeknumber=? AND year=?", [int(weeknumber),year])
|
||||
w_results = myDB.select("SELECT * from weekly WHERE weeknumber=? AND year=?", [int(weekinfo['weeknumber']),weekinfo['year']])
|
||||
else:
|
||||
logger.warn('Problem repopulating the pullist for week ' + str(weeknumber) + ', ' + str(year))
|
||||
logger.warn('Problem repopulating the pullist for week ' + str(weekinfo['weeknumber']) + ', ' + str(weekinfo['year']))
|
||||
if mylar.ALT_PULL == 2:
|
||||
logger.warn('Attempting to repoll against legacy pullist in order to have some kind of updated listing for the week.')
|
||||
repoll = self.manualpull()
|
||||
if repoll['status'] == 'success':
|
||||
w_results = myDB.select("SELECT * from weekly WHERE weeknumber=? AND year=?", [int(weeknumber),year])
|
||||
w_results = myDB.select("SELECT * from weekly WHERE weeknumber=? AND year=?", [int(weekinfo['weeknumber']),weekinfo['year']])
|
||||
else:
|
||||
logger.warn('Unable to populate the pull-list. Not continuing at this time (will try again in abit)')
|
||||
|
||||
if w_results is None:
|
||||
return serve_template(templatename="weeklypull.html", title="Weekly Pull", weeklyresults=weeklyresults, pullfilter=True, weekfold=weekfold, wantedcount=0, weekinfo=weekinfo)
|
||||
return serve_template(templatename="weeklypull.html", title="Weekly Pull", weeklyresults=weeklyresults, pullfilter=True, weekfold=weekinfo['week_folder'], wantedcount=0, weekinfo=weekinfo)
|
||||
|
||||
watchlibrary = helpers.listLibrary()
|
||||
issueLibrary = helpers.listIssues(weeknumber, year)
|
||||
issueLibrary = helpers.listIssues(weekinfo['weeknumber'], weekinfo['year'])
|
||||
|
||||
for weekly in w_results:
|
||||
xfound = False
|
||||
|
@ -1654,8 +1590,8 @@ class WebInterface(object):
|
|||
if weekly['ComicID'] in watchlibrary:
|
||||
haveit = watchlibrary[weekly['ComicID']]
|
||||
|
||||
if weeknumber:
|
||||
if any([week >= int(weeknumber), week is None]) and all([mylar.AUTOWANT_UPCOMING, tmp_status == 'Skipped']):
|
||||
if weekinfo['weeknumber']:
|
||||
if any([week >= int(weekinfo['weeknumber']), week is None]) and all([mylar.AUTOWANT_UPCOMING, tmp_status == 'Skipped']):
|
||||
tmp_status = 'Wanted'
|
||||
|
||||
for x in issueLibrary:
|
||||
|
@ -1725,9 +1661,9 @@ class WebInterface(object):
|
|||
self.manualpull()
|
||||
|
||||
if week:
|
||||
return serve_template(templatename="weeklypull.html", title="Weekly Pull", weeklyresults=weeklyresults, pullfilter=True, weekfold=weekfold, wantedcount=wantedcount, weekinfo=weekinfo)
|
||||
return serve_template(templatename="weeklypull.html", title="Weekly Pull", weeklyresults=weeklyresults, pullfilter=True, weekfold=weekinfo['week_folder'], wantedcount=wantedcount, weekinfo=weekinfo)
|
||||
else:
|
||||
return serve_template(templatename="weeklypull.html", title="Weekly Pull", weeklyresults=weeklyresults, pullfilter=True, weekfold=weekfold, wantedcount=wantedcount, weekinfo=weekinfo)
|
||||
return serve_template(templatename="weeklypull.html", title="Weekly Pull", weeklyresults=weeklyresults, pullfilter=True, weekfold=weekinfo['week_folder'], wantedcount=wantedcount, weekinfo=weekinfo)
|
||||
pullist.exposed = True
|
||||
|
||||
def removeautowant(self, comicname, release):
|
||||
|
|
|
@ -1257,18 +1257,6 @@ def weekly_check(comicid, issuenum, file=None, path=None, module=None, issueid=N
|
|||
module = ''
|
||||
module += '[WEEKLY-PULL]'
|
||||
myDB = db.DBConnection()
|
||||
try:
|
||||
pull_date = myDB.selectone("SELECT SHIPDATE from weekly").fetchone()
|
||||
if (pull_date is None):
|
||||
pulldate = '00000000'
|
||||
else:
|
||||
pulldate = pull_date['SHIPDATE']
|
||||
|
||||
logger.fdebug(module + ' Weekly pull list detected as : ' + str(pulldate))
|
||||
|
||||
except (sqlite3.OperationalError, TypeError), msg:
|
||||
logger.info(module + ' Error determining current weekly pull-list date - you should refresh the pull-list manually probably.')
|
||||
return
|
||||
|
||||
if issueid is None:
|
||||
chkit = myDB.selectone('SELECT * FROM weekly WHERE ComicID=? AND ISSUE=?', [comicid, issuenum]).fetchone()
|
||||
|
@ -1280,20 +1268,29 @@ def weekly_check(comicid, issuenum, file=None, path=None, module=None, issueid=N
|
|||
return
|
||||
|
||||
logger.info(module + ' Issue found on weekly pull-list.')
|
||||
|
||||
weekinfo = helpers.weekly_info(chkit['weeknumber'],chkit['year'])
|
||||
|
||||
if mylar.WEEKFOLDER:
|
||||
weekly_singlecopy(comicid, issuenum, file, path, pulldate)
|
||||
weekly_singlecopy(comicid, issuenum, file, path, weekinfo)
|
||||
if mylar.SEND2READ:
|
||||
send2read(comicid, issueid, issuenum)
|
||||
return
|
||||
|
||||
def weekly_singlecopy(comicid, issuenum, file, path, pulldate):
|
||||
def weekly_singlecopy(comicid, issuenum, file, path, weekinfo):
|
||||
|
||||
module = '[WEEKLY-PULL COPY]'
|
||||
if mylar.WEEKFOLDER:
|
||||
if mylar.WEEKFOLDER_LOC:
|
||||
desdir = os.path.join(mylar.WEEKFOLDER_LOC, pulldate)
|
||||
weekdst = mylar.WEEKFOLDER_LOC
|
||||
else:
|
||||
desdir = os.path.join(mylar.DESTINATION_DIR, pulldate)
|
||||
weekdst = mylar.DESTINATION_DIR
|
||||
|
||||
if mylar.WEEKFOLDER_FORMAT == 0:
|
||||
desdir = os.path.join(weekdst, str( str(weekinfo['year']) + '-' + str(weekinfo['weeknumber']) ))
|
||||
else:
|
||||
desdir = os.path.join(weekdst, str( str(weekinfo['midweek']) ))
|
||||
|
||||
dircheck = mylar.filechecker.validateAndCreateDirectory(desdir, True, module=module)
|
||||
if dircheck:
|
||||
pass
|
||||
|
|
Loading…
Reference in a new issue