mirror of
https://github.com/evilhero/mylar
synced 2025-03-19 10:05:25 +00:00
FIX:(#1400) Added option to Manage Comics to bulk Recheck Files, FIX:(#1370) Fixed multiple problms with the Manage Comics options to mass delete and mass refresh series, FIX: When using alt-pull 2 method for pullist, when pull-list is updated with new info, status on series detail page wouldn't reflect Wanted status, IMP: Added some additoinal publisher logos, FIX: Removed some placeholder options from the Story Arc Details page
This commit is contained in:
parent
61c9664df3
commit
d57741515e
11 changed files with 80 additions and 54 deletions
|
@ -123,6 +123,12 @@
|
|||
<img src="interfaces/default/images/publisherlogos/logo-dynamite.png" align="right" alt="Dynamite" height="50" width="100"/>
|
||||
%elif comic['ComicPublisher'] == 'Cartoon Books':
|
||||
<img src="interfaces/default/images/publisherlogos/logo-cartoonbooks.jpg" align="right" alt="Cartoon Books" height="75" width="90"/>
|
||||
%elif comic['ComicPublisher'] == 'Valiant':
|
||||
<img src="interfaces/default/images/publisherlogos/logo-valiant.png" align="right" alt="Valiant" height="100" width="100"/>
|
||||
%elif comic['ComicPublisher'] == 'Action Lab':
|
||||
<img src="interfaces/default/images/publisherlogos/logo-actionlabs.png" align="right" alt="Action Lab" height="100" width="100"/>
|
||||
%elif comic['ComicPublisher'] == 'Zenescope Entertainment':
|
||||
<img src="interfaces/default/images/publisherlogos/logo-zenescope.png" align="right" alt="Zenescope" height="100" width="160"/>
|
||||
%endif
|
||||
<fieldset>
|
||||
<div>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
BIN
data/interfaces/default/images/publisherlogos/logo-valiant.png
Normal file
BIN
data/interfaces/default/images/publisherlogos/logo-valiant.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.9 KiB |
BIN
data/interfaces/default/images/publisherlogos/logo-zenescope.png
Normal file
BIN
data/interfaces/default/images/publisherlogos/logo-zenescope.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
|
@ -20,10 +20,11 @@
|
|||
<div id="markcomics" style="top:0;">
|
||||
<select name="action" onChange="doAjaxCall('markComics',$(this),'table',true);" data-error="You didn't select any comics">
|
||||
<option disabled="disabled" selected="selected">Choose...</option>
|
||||
<option value="pause">Pause</option>
|
||||
<option value="resume">Resume</option>
|
||||
<option value="refresh">Refresh</option>
|
||||
<option value="delete">Delete</option>
|
||||
<option value="pause">Delete Series</option>
|
||||
<option value="pause">Pause Series</option>
|
||||
<option value="recheck">Recheck Files</option>
|
||||
<option value="refresh">Refresh Series</option>
|
||||
<option value="delete">Resume Series</option>
|
||||
</select>
|
||||
selected comics
|
||||
<input type="hidden" value="Go">
|
||||
|
@ -37,7 +38,7 @@
|
|||
<th id="albumart"></th>
|
||||
<th id="name">Comic Name</th>
|
||||
<th id="status">Status</th>
|
||||
<th id+"stat_icon"></th>
|
||||
<th id="stat_icon"></th>
|
||||
<th id="latest">Latest Issue</th>
|
||||
<th id="publisher">Publisher</th>
|
||||
<th id="have">Have</th>
|
||||
|
|
|
@ -41,9 +41,11 @@
|
|||
<div class="row checkbox left clearfix">
|
||||
<input type="checkbox" style="vertical-align: middle; margin: 3px; margin-top: -1px;" name="storyarcdir" id="storyarcdir" value="1" ${checked(mylar.STORYARCDIR)} /><label>Should I create a Story-Arc Directory?</label><br/>
|
||||
<small>Arcs in StoryArc Directory: <% sdir = os.path.join(mylar.DESTINATION_DIR, "StoryArcs") %>${sdir}</small><br/>
|
||||
<!--
|
||||
<input type="checkbox" style="vertical-align: middle; margin: 3px; margin-top: -1px;" /><label>Show Downloaded Story Arc Issues on ReadingList tab</label><br/>
|
||||
<input type="checkbox" style="vertical-align: middle; margin: 3px; margin-top: -1px;" name="read2filename" id="read2filename" value="1" ${checked(mylar.READ2FILENAME)} /><label>Append Reading# to filename</label><br/>
|
||||
<input type="checkbox" style="vertical-align: middle; margin: 3px; margin-top: -1px;" /><label>Enforce Renaming/MetaTagging options (if enabled)</label><br/>
|
||||
-->
|
||||
<input type="checkbox" style="vertical-align: middle; margin: 3px; margin-top: -1px;" name="read2filename" id="read2filename" value="1" ${checked(mylar.READ2FILENAME)} /><label>Append Reading# to filename</label><br/>
|
||||
<input type="checkbox" style="vertical-align: middle; margin: 3px; margin-top: -1px;" name="copy2arcdir" id="copy2arcdir" value="1" ${checked(mylar.COPY2ARCDIR)} /><label>Copy watchlisted issues to StoryArc Directory</label>
|
||||
<input type="hidden" name="StoryArcID" value="${storyarcid}">
|
||||
<input type="hidden" name="StoryArcName" value="${storyarcname}">
|
||||
|
|
|
@ -101,15 +101,14 @@
|
|||
<td class="status">${weekly['STATUS']}
|
||||
%if weekly['STATUS'] == 'Skipped':
|
||||
%if weekly['COMICID'] != '' and weekly['COMICID'] is not None:
|
||||
<a href="#" title="auto-add by ID available for this series" onclick="doAjaxCall('addbyid?comicid=${weekly['COMICID']}&calledby=True',$(this),'table')" data-success="${weekly['COMIC']} is now being added to your wachlist."><span class="ui-icon ui-icon-plus"></span>add series</a>
|
||||
<a href="#" title="auto-add by ID available for this series" onclick="doAjaxCall('addbyid?comicid=${weekly['COMICID']}&calledby=True',$(this),'table')" data-success="${weekly['COMIC']} is now being added to your wachlist."><span class="ui-icon ui-icon-plus"></span>Add</a>
|
||||
%else:
|
||||
%if weekly['ISSUE'] == '1' or weekly['ISSUE'] == '0':
|
||||
<a href="#" title="Watch for this series" onclick="doAjaxCall('add2futurewatchlist?ComicName=${weekly['COMIC'] |u}&Issue=${weekly['ISSUE']}&Publisher=${weekly['PUBLISHER']}&ShipDate=${weekinfo['midweek']}&weeknumber=${weekinfo['weeknumber']}&year=${weekinfo['year']}',$(this),'table')" data-success="${weekly['COMIC']} is now on auto-watch/add."><span class="ui-icon ui-icon-plus"></span>Watch</a>
|
||||
%else:
|
||||
<a href="searchit?name=${weekly['COMIC'] | u}&issue=${weekly['ISSUE']}&mode=pullseries" title="Add this series to your watchlist"><span class="ui-icon ui-icon-plus"></span>add series</a>
|
||||
<a href="#" title="Watch for this series and auto-add when available" onclick="doAjaxCall('add2futurewatchlist?ComicName=${weekly['COMIC'] |u}&Issue=${weekly['ISSUE']}&Publisher=${weekly['PUBLISHER']}&ShipDate=${weekinfo['midweek']}&weeknumber=${weekinfo['weeknumber']}&year=${weekinfo['year']}',$(this),'table')" data-success="${weekly['COMIC']} is now on auto-watch/add."><span class="ui-icon ui-icon-plus"></span>Watch</a>
|
||||
%endif
|
||||
<a href="searchit?name=${weekly['COMIC'] | u}&issue=${weekly['ISSUE']}&mode=pullseries" title="Search for this series to add to your watchlist"><span class="ui-icon ui-icon-plus"></span>Search</a>
|
||||
%endif
|
||||
<a href="queueissue?ComicName=${weekly['COMIC'] | u}&ComicIssue=${weekly['ISSUE']}&mode=pullwant&Publisher=${weekly['PUBLISHER']}" title="Just grab it"><span class="ui-icon ui-icon-plus"></span>one off</a>
|
||||
<a href="queueissue?ComicName=${weekly['COMIC'] | u}&ComicIssue=${weekly['ISSUE']}&mode=pullwant&Publisher=${weekly['PUBLISHER']}" title="Just grab it"><span class="ui-icon ui-icon-plus"></span>One-Off</a>
|
||||
%endif
|
||||
%endif
|
||||
</td>
|
||||
|
|
|
@ -75,7 +75,7 @@ class info32p(object):
|
|||
|
||||
#need a way to find response code (200=OK), but returns 200 for everything even failed signons (returns a blank page)
|
||||
#logger.info('[32P] response: ' + str(r.content))
|
||||
soup = BeautifulSoup(r.content)
|
||||
soup = BeautifulSoup(r.content, "html.parser")
|
||||
soup.prettify()
|
||||
|
||||
if self.searchterm:
|
||||
|
@ -189,7 +189,7 @@ class info32p(object):
|
|||
s.cookies = cj
|
||||
time.sleep(1) #just to make sure we don't hammer, 1s pause.
|
||||
t = s.get(url, params=params, verify=True)
|
||||
soup = BeautifulSoup(t.content)
|
||||
soup = BeautifulSoup(t.content, "html.parser")
|
||||
results = soup.find_all("a", {"class":"object-qtip"},{"data-type":"torrentgroup"})
|
||||
|
||||
data = []
|
||||
|
|
|
@ -565,7 +565,10 @@ def weekly_update(ComicName, IssueNumber, CStatus, CID, weeknumber, year, altiss
|
|||
|
||||
def newpullcheck(ComicName, ComicID, issue=None):
|
||||
# When adding a new comic, let's check for new issues on this week's pullist and update.
|
||||
if mylar.ALT_PULL != '2':
|
||||
mylar.weeklypull.pullitcheck(comic1off_name=ComicName, comic1off_id=ComicID, issue=issue)
|
||||
else:
|
||||
mylar.weeklypull.new_pullcheck(weeknumber=mylar.CURRENT_WEEKNUMBER, pullyear=mylar.CURRENT_YEAR, comic1off_name=ComicName, comic1off_id=ComicID, issue=issue)
|
||||
return
|
||||
|
||||
def no_searchresults(ComicID):
|
||||
|
|
|
@ -2182,14 +2182,9 @@ class WebInterface(object):
|
|||
def markComics(self, action=None, **args):
|
||||
myDB = db.DBConnection()
|
||||
comicsToAdd = []
|
||||
logger.info(args)
|
||||
for ComicID in args:
|
||||
if ComicID == 'manage_comic_length':
|
||||
continue
|
||||
else:
|
||||
for k,v in args.items():
|
||||
if k == 'manage_comic_length':
|
||||
break
|
||||
continue
|
||||
#k = Comicname[ComicYear]
|
||||
#v = ComicID
|
||||
comyr = k.find('[')
|
||||
|
@ -2213,11 +2208,18 @@ class WebInterface(object):
|
|||
newValueDict = {'Status': 'Active'}
|
||||
myDB.upsert("comics", newValueDict, controlValueDict)
|
||||
logger.info('[MANAGE COMICS][RESUME] ' + ComicName + ' has now been put into a Resumed State.')
|
||||
elif action == 'recheck':
|
||||
comicsToAdd.append({'ComicID': ComicID,
|
||||
'ComicName': ComicName,
|
||||
'ComicYear': ComicYear})
|
||||
else:
|
||||
logger.info('appending ' + str(ComicID) + ' to refresh list.')
|
||||
comicsToAdd.append(ComicID)
|
||||
|
||||
if len(comicsToAdd) > 0:
|
||||
if action == 'recheck':
|
||||
logger.info('[MANAGE COMICS][RECHECK-FILES] Rechecking Files for ' + str(len(comicsToAdd)) + ' series')
|
||||
threading.Thread(target=self.forceRescan, args=[comicsToAdd,True]).start()
|
||||
else:
|
||||
logger.info('[MANAGE COMICS][REFRESH] Refreshing ' + str(len(comicsToAdd)) + ' series')
|
||||
threading.Thread(target=updater.dbUpdate, args=[comicsToAdd]).start()
|
||||
markComics.exposed = True
|
||||
|
@ -2234,9 +2236,16 @@ class WebInterface(object):
|
|||
raise cherrypy.HTTPRedirect("home")
|
||||
forceSearch.exposed = True
|
||||
|
||||
def forceRescan(self, ComicID):
|
||||
def forceRescan(self, ComicID, bulk=False):
|
||||
if bulk:
|
||||
cnt = 1
|
||||
for cid in ComicID:
|
||||
logger.info('[MASS BATCH][RECHECK-FILES][' + str(cnt) + '/' + str(len(ComicID)) + '] Rechecking ' + cid['ComicName'] + '(' + str(cid['ComicYear']) + ')')
|
||||
updater.forceRescan(cid['ComicID'])
|
||||
cnt+=1
|
||||
logger.info('[MASS BATCH][RECHECK-FILES] I have completed rechecking files for ' + str(len(ComicID)) + ' series.')
|
||||
else:
|
||||
threading.Thread(target=updater.forceRescan, args=[ComicID]).start()
|
||||
#raise cherrypy.HTTPRedirect("comicDetails?ComicID=%s" % ComicID)
|
||||
forceRescan.exposed = True
|
||||
|
||||
def checkGithub(self):
|
||||
|
|
|
@ -831,7 +831,11 @@ def new_pullcheck(weeknumber, pullyear, comic1off_name=None, comic1off_id=None,
|
|||
myDB = db.DBConnection()
|
||||
watchlist = []
|
||||
weeklylist = []
|
||||
if comic1off_name:
|
||||
comiclist = myDB.select("SELECT * FROM comics WHERE Status='Active' AND ComicID=?",[comic1off_id])
|
||||
else:
|
||||
comiclist = myDB.select("SELECT * FROM comics WHERE Status='Active'")
|
||||
|
||||
if comiclist is None:
|
||||
pass
|
||||
else:
|
||||
|
@ -926,7 +930,9 @@ def new_pullcheck(weeknumber, pullyear, comic1off_name=None, comic1off_id=None,
|
|||
ki = []
|
||||
kc = []
|
||||
otot = 0
|
||||
if not comic1off_id:
|
||||
logger.fdebug("[WALKSOFTLY] You are watching for: " + str(len(weeklylist)) + " comics")
|
||||
|
||||
weekly = myDB.select('SELECT a.comicid, IFNULL(a.Comic,IFNULL(b.ComicName, c.ComicName)) as ComicName, a.rowid, a.issue, a.issueid, c.ComicPublisher, a.weeknumber, a.shipdate, a.dynamicname FROM weekly as a INNER JOIN annuals as b INNER JOIN comics as c ON b.releasecomicid = a.comicid OR c.comicid = a.comicid OR c.DynamicComicName = a.dynamicname WHERE weeknumber = ? GROUP BY a.dynamicname', [weeknumber]) #comics INNER JOIN weekly ON comics.DynamicComicName = weekly.dynamicname OR comics.comicid = weekly.comicid INNER JOIN annuals ON annuals.comicid = weekly.comicid WHERE weeknumber = ? GROUP BY weekly.dynamicname', [weeknumber])
|
||||
for week in weekly:
|
||||
idmatch = None
|
||||
|
|
Loading…
Add table
Reference in a new issue