add setup

This commit is contained in:
Artem Kharlamov 2015-12-01 17:35:33 +06:00
parent 75a2299e83
commit 1ea5f9c28a
3 changed files with 49 additions and 24 deletions

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>{{title}}</title>
<link>https://torrentapi.org/apidocs_v2.txt</link>
<ttl>3600</ttl>
{% for entry in entries %}
<item>
<title>{{entry.title}} ({{entry.hsize}})</title>
<description/>
<guid>{{entry.hash}}</guid>
<pubDate>{{entry.pubdate}}</pubDate>
<enclosure
url="{{entry.download}}"
length="{{entry.size}}"
type="application/x-bittorrent" />
</item>
{% endfor %}
</channel>
</rss>

View File

@ -4,19 +4,40 @@
import asyncio import asyncio
from datetime import datetime, timedelta from datetime import datetime, timedelta
from dateutil import parser
from email.utils import formatdate from email.utils import formatdate
from urllib.parse import parse_qs from urllib.parse import parse_qs
from aiohttp import get, web from aiohttp import get, web
from dateutil import parser
from humanize import naturalsize from humanize import naturalsize
from jinja2 import Template from jinja2 import Template
API_ENDPOINT = 'https://torrentapi.org/pubapi_v2.php' API_ENDPOINT = 'https://torrentapi.org/pubapi_v2.php'
TEMPLATE = Template(open('feed.xml').read())
TOKEN_LIFESPAN = timedelta(minutes=15) TOKEN_LIFESPAN = timedelta(minutes=15)
TEMPLATE = Template('''
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>{{title}}</title>
<link>https://torrentapi.org/apidocs_v2.txt</link>
<ttl>3600</ttl>
{% for entry in entries %}
<item>
<title>{{entry.title}} ({{entry.hsize}})</title>
<description/>
<guid>{{entry.hash}}</guid>
<pubDate>{{entry.pubdate}}</pubDate>
<enclosure
url="{{entry.download}}"
length="{{entry.size}}"
type="application/x-bittorrent" />
</item>
{% endfor %}
</channel>
</rss>
''')
app = web.Application() app = web.Application()
app.token = None app.token = None
app.token_got = datetime.now() app.token_got = datetime.now()
@ -59,10 +80,14 @@ async def rarbg_rss(request):
app.router.add_route('GET', '/', rarbg_rss) app.router.add_route('GET', '/', rarbg_rss)
if __name__ == '__main__': def main():
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
handler = app.make_handler() handler = app.make_handler()
f = loop.create_server(handler, '0.0.0.0', 8080) f = loop.create_server(handler, '0.0.0.0', 8080)
srv = loop.run_until_complete(f) srv = loop.run_until_complete(f)
print('serving on', srv.sockets[0].getsockname()) print('serving on', srv.sockets[0].getsockname())
loop.run_forever() loop.run_forever()
if __name__ == '__main__':
main()

20
setup.py Normal file
View File

@ -0,0 +1,20 @@
from setuptools import setup
setup(
name='rarbg',
version='0.1-dev',
description='RSS interface to TorrentAPI',
url='https://github.com/banteg/rarbg',
py_modules=['rarbg'],
install_requires=[
'aiohttp',
'python-dateutil',
'humanize',
'jinja2'
],
entry_points={
'console_scripts': [
'rarbg = rarbg:main',
],
}
)