nemubot/modules/tpb.py

45 lines
1.6 KiB
Python
Raw Normal View History

2014-12-17 06:07:54 +00:00
from datetime import datetime
import urllib
from nemubot.exception import IRCException
from nemubot.hooks import hook
from nemubot.tools import human
from nemubot.tools.web import getJSON
nemubotversion = 3.4
from more import Response
URL_TPBAPI = None
def load(context):
global URL_TPBAPI
2015-02-11 17:12:39 +00:00
if not context.config or not context.config.hasNode("tpbapi") or not context.config.getNode("tpbapi").hasAttribute("url"):
print ("You need a TPB API in order to use the !tpb feature. Add it to "
"the module configuration file:\n"
"<tpbapi url=\"http://tpbapi.org/\" />\nSample API: "
"https://gist.github.com/colona/07a925f183cfb47d5f20")
else:
2015-02-11 17:12:39 +00:00
URL_TPBAPI = context.config.getNode("tpbapi")["url"]
2015-04-17 06:43:03 +00:00
from nemubot.hooks.message import Message
context.add_hook("cmd_hook", Message(cmd_tpb, "tpb"))
def cmd_tpb(msg):
if len(msg.cmds) < 1:
raise IRCException("indicate an item to search!")
torrents = getJSON(URL_TPBAPI + urllib.parse.quote(" ".join(msg.cmds[1:])))
res = Response(channel=msg.channel, nomore="No more torrents", count=" (%d more torrents)")
if torrents:
for t in torrents:
2014-12-17 06:07:54 +00:00
t["sizeH"] = human.size(t["size"])
t["dateH"] = datetime.fromtimestamp(t["date"]).strftime('%Y-%m-%d %H:%M:%S')
2014-12-19 06:27:27 +00:00
res.append_message("\x03\x02{title}\x03\x02 in {category}, {sizeH}; added at {dateH}; id: {id}; magnet:?xt=urn:btih:{magnet}&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Fopen.demonii.com%3A1337".format(**t))
return res