mirror of
https://github.com/rembo10/headphones.git
synced 2026-01-11 07:48:03 -05:00
* Add configuration options for bandcamp * Add bandcamp config options * Add bandcamp config options * Initial crude bandcamp search and download support * Add bandcamp search support * Better utf-8 handling and tagging of the downloads * Post-process bandcamp dodwnload directory * Tweak the order of downloads (prevent querying bandcamp too often) * Show [bandcamp] link in the history page * pep8 * Use more sane loglevels * Oops. * Patch regexp to support new bandcamp page structure * Make sure the file-key exists, is not None and contains data
110 lines
4.7 KiB
HTML
110 lines
4.7 KiB
HTML
<%inherit file="base.html"/>
|
|
<%!
|
|
from headphones import helpers
|
|
from html import escape as html_escape
|
|
%>
|
|
|
|
<%def name="headerIncludes()">
|
|
<div id="subhead_container">
|
|
<div id="subhead_menu">
|
|
<a id="menu_link_delete" href="javascript:void(0)" onclick="doAjaxCall('clearhistory?type=all',$(this),'table')" data-success="All History cleared"><i class="fa fa-trash-o"></i> Clear All History</a>
|
|
<a id="menu_link_delete" href="javascript:void(0)" onclick="doAjaxCall('clearhistory?type=Processed',$(this),'table')" data-success="All Processed cleared"><i class="fa fa-trash-o"></i> Clear Processed</a>
|
|
<a id="menu_link_delete" href="javascript:void(0)" onclick="doAjaxCall('clearhistory?type=Unprocessed',$(this),'table')" data-success="All Unprocessed cleared"><i class="fa fa-trash-o"></i> Clear Unprocessed</a>
|
|
<a id="menu_link_delete" href="javascript:void(0)" onclick="doAjaxCall('clearhistory?type=Frozen',$(this),'table')" data-success="All Frozen cleared"><i class="fa fa-trash-o"></i> Clear Frozen</a>
|
|
<a id="menu_link_delete" href="javascript:void(0)" onclick="doAjaxCall('clearhistory?type=Snatched',$(this),'table')" data-success="All Snatched cleared"><i class="fa fa-trash-o"></i> Clear Snatched</a>
|
|
</div>
|
|
</div>
|
|
</%def>
|
|
|
|
<%def name="body()">
|
|
<div id="paddingheader">
|
|
<h1 class="clearfix"><i class="fa fa-calendar"></i> History</h1>
|
|
</div>
|
|
<table class="display" id="history_table">
|
|
<thead>
|
|
<tr>
|
|
<th id="dateadded">Date Added</th>
|
|
<th id="filename">File Name</th>
|
|
<th id="size">Size</th>
|
|
<th id="status">Status</th>
|
|
<th id="action"></th>
|
|
<th id="delete"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
%for item in history:
|
|
<%
|
|
if item['Status'] == 'Processed':
|
|
grade = 'A'
|
|
elif item['Status'] == 'Snatched':
|
|
grade = 'C'
|
|
elif item['Status'] == 'Unprocessed':
|
|
grade = 'X'
|
|
elif item['Status'] == 'Frozen':
|
|
grade = 'X'
|
|
else:
|
|
grade = 'U'
|
|
|
|
fileid = 'unknown'
|
|
if item['URL'].find('nzb') != -1:
|
|
fileid = 'nzb'
|
|
if item['URL'].find('torrent') != -1:
|
|
fileid = 'torrent'
|
|
if item['URL'].find('magnet:') != -1:
|
|
fileid = 'torrent'
|
|
if item['URL'].find('rutracker') != -1:
|
|
fileid = 'torrent'
|
|
if item['URL'].find('codeshy') != -1:
|
|
fileid = 'nzb'
|
|
if item['URL'].find('bandcamp') != -1:
|
|
fileid = 'bandcamp'
|
|
|
|
folder = 'Folder: ' + item['FolderName']
|
|
|
|
%>
|
|
<tr class="grade${grade}">
|
|
<td id="dateadded">${item['DateAdded']}</td>
|
|
<td id="filename">${html_escape(item['Title'], quote=True)} [<a href="${item['URL']}">${fileid}</a>]<a href="albumPage?AlbumID=${item['AlbumID']}">[album page]</a></td>
|
|
<td id="size">${helpers.bytes_to_mb(item['Size'])}</td>
|
|
<td title="${folder}" id="status">${item['Status']}</td>
|
|
<td id="action">[<a href="javascript:void(0)" onclick="doAjaxCall('queueAlbum?AlbumID=${item['AlbumID']}&redirect=history', $(this),'table')" data-success="Retrying download of '${html_escape(item['Title'], quote=True)}'">retry</a>][<a href="javascript:void(0)" onclick="doAjaxCall('queueAlbum?AlbumID=${item['AlbumID']}&new=True&redirect=history',$(this),'table')" data-success="Looking for a new version of '${html_escape(item['Title'], quote=True)}'">new</a>]</td>
|
|
<td id="delete"><a href="javascript:void(0)" onclick="doAjaxCall('clearhistory?date_added=${item['DateAdded']}&title=${html_escape(item['Title'], quote=True)}',$(this),'table')" data-success="${html_escape(item['Title'], quote=True)} cleared from history"><img src="interfaces/default/images/trashcan.png" height="18" width="18" id="trashcan" title="Clear this item from the history"></a>
|
|
</tr>
|
|
%endfor
|
|
</tbody>
|
|
</table>
|
|
</%def>
|
|
|
|
<%def name="headIncludes()">
|
|
<link rel="stylesheet" href="interfaces/default/css/data_table.css">
|
|
</%def>
|
|
|
|
<%def name="javascriptIncludes()">
|
|
<script src="js/libs/jquery.dataTables.min.js"></script>
|
|
<script>
|
|
function initThisPage() {
|
|
$('#history_table').dataTable({
|
|
"bDestroy": true,
|
|
"oLanguage": {
|
|
"sLengthMenu":"Show _MENU_ items per page",
|
|
"sEmptyTable": " ",
|
|
"sInfo":"Showing _START_ to _END_ of _TOTAL_ items",
|
|
"sInfoEmpty":"Showing 0 to 0 of 0 items",
|
|
"sInfoFiltered":"(filtered from _MAX_ total items)"},
|
|
"iDisplayLength": 25,
|
|
"sPaginationType": "full_numbers",
|
|
"aaSorting": [],
|
|
"fnDrawCallback": function (o) {
|
|
// Jump to top of page
|
|
$('html,body').scrollTop(0);
|
|
}
|
|
});
|
|
resetFilters("history");
|
|
}
|
|
$(document).ready(function() {
|
|
initThisPage();
|
|
initActions();
|
|
});
|
|
</script>
|
|
</%def>
|