mirror of
https://github.com/lifekiller/rarbg.git
synced 2025-05-28 05:10:28 -07:00
add setup
This commit is contained in:
parent
75a2299e83
commit
1ea5f9c28a
20
feed.xml
20
feed.xml
@ -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>
|
33
rarbg.py
33
rarbg.py
@ -4,19 +4,40 @@
|
||||
import asyncio
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from dateutil import parser
|
||||
from email.utils import formatdate
|
||||
from urllib.parse import parse_qs
|
||||
|
||||
from aiohttp import get, web
|
||||
from dateutil import parser
|
||||
from humanize import naturalsize
|
||||
from jinja2 import Template
|
||||
|
||||
|
||||
API_ENDPOINT = 'https://torrentapi.org/pubapi_v2.php'
|
||||
TEMPLATE = Template(open('feed.xml').read())
|
||||
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.token = None
|
||||
app.token_got = datetime.now()
|
||||
@ -59,10 +80,14 @@ async def rarbg_rss(request):
|
||||
app.router.add_route('GET', '/', rarbg_rss)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
def main():
|
||||
loop = asyncio.get_event_loop()
|
||||
handler = app.make_handler()
|
||||
f = loop.create_server(handler, '0.0.0.0', 8080)
|
||||
srv = loop.run_until_complete(f)
|
||||
print('serving on', srv.sockets[0].getsockname())
|
||||
loop.run_forever()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
20
setup.py
Normal file
20
setup.py
Normal 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',
|
||||
],
|
||||
}
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user