summaryrefslogtreecommitdiffstats
path: root/twisted/plugins/nohgooee_plugin.py
blob: e8bf6d43a77d4c7ec27913e192510d7654c42b85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# -*- mode: python: coding: utf-8 -*-

# The contents of this file are subject to the BitTorrent Open Source License
# Version 1.1 (the License).  You may not copy or use this file, in either
# source code or executable form, except in compliance with the License.  You
# may obtain a copy of the License at http://www.bittorrent.com/license/.
#
# Software distributed under the License is distributed on an AS IS basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the License
# for the specific language governing rights and limitations under the
# License.

from NohGooee.platform import install_translation
install_translation()

from zope.interface import implements

from twisted.python import usage
from twisted.plugin import IPlugin
from twisted.application.service import IServiceMaker
from twisted.application import internet
from twisted.web import server

from NohGooee.track import Tracker, InfoPage, Scrape, File, Announce, FavIcon
from NohGooee.config import NohgooeeOptions

class NohgooeeTrackerMaker(object):
    implements(IServiceMaker, IPlugin)
    tapname = "nohgooee-tracker"
    description = "Nohgooee BitTorrent Tracker"
    options = NohgooeeOptions

    def makeService(self, options):
        
        tracker = Tracker(options)
        root = InfoPage(tracker)
        root.putChild('scrape', Scrape(tracker))
        root.putChild('file', File(tracker))
        root.putChild('announce', Announce(tracker))
        root.putChild('favicon.ico', FavIcon(tracker))

        site = server.Site(root)

        return internet.TCPServer(8080, site)

nohgooeeTrackerMaker = NohgooeeTrackerMaker()