third commit
This commit is contained in:
parent
680be680e4
commit
70c95d28af
|
@ -10,18 +10,13 @@ app = Flask(__name__)
|
||||||
app.jinja_env.trim_blocks = True
|
app.jinja_env.trim_blocks = True
|
||||||
app.jinja_env.lstrip_blocks = True
|
app.jinja_env.lstrip_blocks = True
|
||||||
app.jinja_env.undefined = "StrictUndefined"
|
app.jinja_env.undefined = "StrictUndefined"
|
||||||
|
rtorrent.get_all()
|
||||||
|
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
def index():
|
def index():
|
||||||
"""The index page."""
|
"""The index page."""
|
||||||
return render_template("index.html", **locals())
|
|
||||||
|
|
||||||
@app.route("/active")
|
|
||||||
def active():
|
|
||||||
"""Displays all currently active torrents."""
|
|
||||||
torrents = rtorrent.get_active()
|
torrents = rtorrent.get_active()
|
||||||
torrents = [rtorrent.get_info(t) for t in torrents]
|
return render_template("index.html", **locals())
|
||||||
return render_template("view.html", **locals())
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app.run(host='0.0.0.0', port=5250)
|
app.run(host='0.0.0.0', port=5250)
|
||||||
|
|
43
rtorrent.py
43
rtorrent.py
|
@ -4,19 +4,38 @@ This module handles the interface with rTorrent via XMLRPC.
|
||||||
"""
|
"""
|
||||||
import xmlrpc.client
|
import xmlrpc.client
|
||||||
|
|
||||||
_s = xmlrpc.client.ServerProxy("http://localhost:8000/RPC2")
|
_s = xmlrpc.client.ServerProxy("http://localhost:8000/RPC0")
|
||||||
|
torrents = []
|
||||||
|
|
||||||
|
class Torrent:
|
||||||
|
def __init__(self, raw):
|
||||||
|
self.hash = raw[0]
|
||||||
|
self.name = raw[1]
|
||||||
|
self.active = raw[2]
|
||||||
|
self.complete = raw[3]
|
||||||
|
if not self.active:
|
||||||
|
self.state = "inactive"
|
||||||
|
elif self.complete:
|
||||||
|
self.state = "seeding"
|
||||||
|
else:
|
||||||
|
self.state = "leeching"
|
||||||
|
self.downrate = raw[4]
|
||||||
|
self.uprate = raw[5]
|
||||||
|
|
||||||
def get_all():
|
def get_all():
|
||||||
"""Returns all torrents in the 'main' view."""
|
"""Gets all torrent information and stores it."""
|
||||||
return _s.download_list("", "main")
|
global torrents
|
||||||
|
res = _s.d.multicall2('', 'main',
|
||||||
|
'd.hash=',
|
||||||
|
'd.name=',
|
||||||
|
'd.is_active=',
|
||||||
|
'd.complete=',
|
||||||
|
'd.down.rate=',
|
||||||
|
'd.up.rate=',
|
||||||
|
)
|
||||||
|
torrents = [Torrent(raw) for raw in res]
|
||||||
|
|
||||||
def get_active():
|
def get_active():
|
||||||
"""Returns all torrents in the 'active' view."""
|
"""Returns all actively seeding or leeching torrents."""
|
||||||
return _s.download_list("", "active")
|
active = [t for t in torrents if t.downrate or t.uprate]
|
||||||
|
return active
|
||||||
def get_info(torrent):
|
|
||||||
"""Retrieves relevant info about a particular torrent."""
|
|
||||||
data = {}
|
|
||||||
data['name'] = _s.d.name(torrent)
|
|
||||||
data['complete'] = _s.d.complete(torrent)
|
|
||||||
return data
|
|
||||||
|
|
|
@ -4,5 +4,25 @@
|
||||||
<title>Aberrant</title>
|
<title>Aberrant</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>State</th>
|
||||||
|
<th>DL</th>
|
||||||
|
<th>UL</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for torrent in torrents %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ torrent.name }}</td>
|
||||||
|
<td>{{ torrent.state }}</td>
|
||||||
|
<td>{{ torrent.downrate }}</td>
|
||||||
|
<td>{{ torrent.uprate }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Aberrant</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Name</th>
|
|
||||||
<th>Complete</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for torrent in torrents %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ torrent['name'] }}</td>
|
|
||||||
<td>{{ torrent['complete'] }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user