mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-26 09:46:09 +00:00
- Non-devel port have much newer version, and since there is no visible
development branch, remove PR: ports/114223 Submitted by: Wesley Shields <wxs@atarininja.org>
This commit is contained in:
parent
eadd1cb03a
commit
2c686b352e
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=195388
2
MOVED
2
MOVED
@ -3097,3 +3097,5 @@ net/php5-rrdtool|databases/php5-rrdtool|2007-07-08|Chase move of databases/rrdto
|
||||
textproc/ruby-spreadsheet-excel|textproc/rubygem-spreadsheet-excel|2007-07-09|Port updated in rubygem version
|
||||
net/gnet-glib2|net/gnet2|2007-07-09|Functionality merged into gnet2
|
||||
www/lynx-ssl|www/lynx|2007-07-10|SSL enabled by default in www/lynx
|
||||
net-p2p/py-bittorrent-devel|net-p2p/py-bittorent|2007-07-10|Non-devel port have newer version
|
||||
net-p2p/py-bittorrent-core-devel|net-p2p/py-bittorent-core|2007-07-10|Non-devel port have newer version
|
||||
|
@ -96,8 +96,6 @@
|
||||
SUBDIR += py-bittornado-core
|
||||
SUBDIR += py-bittorrent
|
||||
SUBDIR += py-bittorrent-core
|
||||
SUBDIR += py-bittorrent-core-devel
|
||||
SUBDIR += py-bittorrent-devel
|
||||
SUBDIR += py-fngrab
|
||||
SUBDIR += py-kenosis
|
||||
SUBDIR += py-kenosis-bittorrent
|
||||
|
@ -1,17 +0,0 @@
|
||||
# New ports collection makefile for: py-bittorrent-core
|
||||
# Date created: 21 October 2003
|
||||
# Whom: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org> and Mezz <mezz7@cox.net>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PKGNAMESUFFIX= -core-devel
|
||||
|
||||
COMMENT= Client 'core' for the BitTorrent peer-to-peer network
|
||||
|
||||
# build only the CORE
|
||||
WITHOUT_GUI= yes
|
||||
|
||||
MASTERDIR= ${.CURDIR}/../py-bittorrent-devel
|
||||
|
||||
.include "${MASTERDIR}/Makefile"
|
@ -1,239 +0,0 @@
|
||||
# New ports collection makefile for: BitTorrent
|
||||
# Date created: Sun Mar 16 06:34:12 UTC 2003
|
||||
# Whom: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= BitTorrent
|
||||
PORTVERSION= 4.20.4
|
||||
PORTREVISION= 4
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES?= net-p2p python
|
||||
MASTER_SITES= http://download.bittorrent.com/dl/
|
||||
MASTER_SITE_SUBDIR= ${PORTNAME:L}
|
||||
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
||||
PKGNAMESUFFIX?= -devel
|
||||
|
||||
MAINTAINER= ports@FreeBSD.org
|
||||
COMMENT?= A peer-to-peer tool for distributing files written in Python
|
||||
|
||||
RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/dns/__init__.py:${PORTSDIR}/dns/py-dnspython \
|
||||
${PYTHON_SITELIBDIR}/Crypto/__init__.py:${PORTSDIR}/security/py-pycrypto
|
||||
|
||||
USE_GETTEXT= yes
|
||||
USE_PYTHON= yes
|
||||
USE_PYDISTUTILS= yes
|
||||
USE_TWISTED_RUN= yes
|
||||
|
||||
CONFLICTS= py??-*[Bb]it[Tt]orrent* py??-*[Bb]it[Tt]ornado* btqueue*
|
||||
|
||||
NO_LATEST_LINK= yes
|
||||
|
||||
.ifndef(NOPORTDOCS)
|
||||
PORTDOCS= \
|
||||
INSTALL.unix.txt \
|
||||
LICENSE.txt \
|
||||
README.txt \
|
||||
TRACKERLESS.txt \
|
||||
credits.txt \
|
||||
credits-l10n.txt
|
||||
.else
|
||||
EXTRA_PATCHES+= ${FILESDIR}/extra-noportdocs-setup.py
|
||||
.endif
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${ARCH} != "i386"
|
||||
WITHOUT_PSYCO= yes
|
||||
.endif
|
||||
|
||||
# required for GUI
|
||||
.ifndef(WITHOUT_GUI)
|
||||
RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/wx-2.6-gtk2-unicode/wxPython/__init__.py:${PORTSDIR}/x11-toolkits/py-wxPython26-unicode
|
||||
|
||||
PLIST_FILES+= \
|
||||
bin/bittorrent \
|
||||
bin/maketorrent \
|
||||
share/pixmaps/BitTorrent/bittorrent.ico \
|
||||
share/pixmaps/BitTorrent/flags/AE.png \
|
||||
share/pixmaps/BitTorrent/flags/AR.png \
|
||||
share/pixmaps/BitTorrent/flags/AT.png \
|
||||
share/pixmaps/BitTorrent/flags/AU.png \
|
||||
share/pixmaps/BitTorrent/flags/BE.png \
|
||||
share/pixmaps/BitTorrent/flags/BG.png \
|
||||
share/pixmaps/BitTorrent/flags/BR.png \
|
||||
share/pixmaps/BitTorrent/flags/CA.png \
|
||||
share/pixmaps/BitTorrent/flags/CH.png \
|
||||
share/pixmaps/BitTorrent/flags/CL.png \
|
||||
share/pixmaps/BitTorrent/flags/CN.png \
|
||||
share/pixmaps/BitTorrent/flags/CO.png \
|
||||
share/pixmaps/BitTorrent/flags/CY.png \
|
||||
share/pixmaps/BitTorrent/flags/CZ.png \
|
||||
share/pixmaps/BitTorrent/flags/DE.png \
|
||||
share/pixmaps/BitTorrent/flags/DK.png \
|
||||
share/pixmaps/BitTorrent/flags/ES.png \
|
||||
share/pixmaps/BitTorrent/flags/EU.png \
|
||||
share/pixmaps/BitTorrent/flags/FI.png \
|
||||
share/pixmaps/BitTorrent/flags/FR.png \
|
||||
share/pixmaps/BitTorrent/flags/GB.png \
|
||||
share/pixmaps/BitTorrent/flags/GR.png \
|
||||
share/pixmaps/BitTorrent/flags/GT.png \
|
||||
share/pixmaps/BitTorrent/flags/HK.png \
|
||||
share/pixmaps/BitTorrent/flags/HU.png \
|
||||
share/pixmaps/BitTorrent/flags/IT.png \
|
||||
share/pixmaps/BitTorrent/flags/JP.png \
|
||||
share/pixmaps/BitTorrent/flags/KR.png \
|
||||
share/pixmaps/BitTorrent/flags/KW.png \
|
||||
share/pixmaps/BitTorrent/flags/LT.png \
|
||||
share/pixmaps/BitTorrent/flags/LV.png \
|
||||
share/pixmaps/BitTorrent/flags/MX.png \
|
||||
share/pixmaps/BitTorrent/flags/NA.png \
|
||||
share/pixmaps/BitTorrent/flags/NL.png \
|
||||
share/pixmaps/BitTorrent/flags/NO.png \
|
||||
share/pixmaps/BitTorrent/flags/PR.png \
|
||||
share/pixmaps/BitTorrent/flags/PT.png \
|
||||
share/pixmaps/BitTorrent/flags/RU.png \
|
||||
share/pixmaps/BitTorrent/flags/SE.png \
|
||||
share/pixmaps/BitTorrent/flags/SG.png \
|
||||
share/pixmaps/BitTorrent/flags/SI.png \
|
||||
share/pixmaps/BitTorrent/flags/TW.png \
|
||||
share/pixmaps/BitTorrent/flags/US.png \
|
||||
share/pixmaps/BitTorrent/flags/YU.png \
|
||||
share/pixmaps/BitTorrent/flags/ZA.png \
|
||||
share/pixmaps/BitTorrent/flags/noimage.png \
|
||||
share/pixmaps/BitTorrent/flags/unknown.png \
|
||||
share/pixmaps/BitTorrent/logo/banner.png \
|
||||
share/pixmaps/BitTorrent/logo/bittorrent_icon.png \
|
||||
share/pixmaps/BitTorrent/logo/bittorrent_icon_16.png \
|
||||
share/pixmaps/BitTorrent/logo/bittorrent_icon_24.png \
|
||||
share/pixmaps/BitTorrent/logo/bittorrent_icon_32.png \
|
||||
share/pixmaps/BitTorrent/logo/bittorrent_icon_48.png \
|
||||
share/pixmaps/BitTorrent/themes/default/add_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/add_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/add_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/fileops/first_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/fileops/first_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/fileops/first_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/fileops/never_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/fileops/never_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/fileops/never_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/fileops/normal_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/fileops/normal_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/fileops/normal_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/progressbar.png \
|
||||
share/pixmaps/BitTorrent/themes/default/search_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/search_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/search_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/settings_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/settings_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/settings_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/statuslight/broken.png \
|
||||
share/pixmaps/BitTorrent/themes/default/statuslight/natted.png \
|
||||
share/pixmaps/BitTorrent/themes/default/statuslight/pre-natted.png \
|
||||
share/pixmaps/BitTorrent/themes/default/statuslight/running.png \
|
||||
share/pixmaps/BitTorrent/themes/default/statuslight/starting.png \
|
||||
share/pixmaps/BitTorrent/themes/default/statuslight/stopped.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/info_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/info_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/info_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/launch_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/launch_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/launch_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/remove_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/remove_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/remove_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/resume_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/resume_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/resume_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/stop_16.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/stop_24.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentops/stop_32.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/complete.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/created.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/downloading.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/error.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/finishing.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/force-seed.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/paused.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/seeding.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/starting.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/stopped.png \
|
||||
share/pixmaps/BitTorrent/themes/default/torrentstate/unknown.png
|
||||
|
||||
PLIST_SUB+= \
|
||||
GUI=""
|
||||
.else
|
||||
EXTRA_PATCHES+= ${FILESDIR}/extra-nogui-patch-setup.py
|
||||
|
||||
PLIST_SUB+= \
|
||||
GUI="@comment "
|
||||
.endif
|
||||
# required for PSYCO
|
||||
.ifndef(WITHOUT_PSYCO)
|
||||
RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/psyco/_psyco.so:${PORTSDIR}/devel/py-psyco
|
||||
|
||||
EXTRA_PATCHES+= \
|
||||
${FILESDIR}/extra-psyco-patch-bittorrent-console.py \
|
||||
${FILESDIR}/extra-psyco-patch-bittorrent-curses.py \
|
||||
${FILESDIR}/extra-psyco-patch-bittorrent-tracker.py \
|
||||
${FILESDIR}/extra-psyco-patch-bittorrent.py \
|
||||
${FILESDIR}/extra-psyco-patch-changetracker-console.py \
|
||||
${FILESDIR}/extra-psyco-patch-launchmany-console.py \
|
||||
${FILESDIR}/extra-psyco-patch-launchmany-curses.py \
|
||||
${FILESDIR}/extra-psyco-patch-maketorrent-console.py \
|
||||
${FILESDIR}/extra-psyco-patch-maketorrent.py \
|
||||
${FILESDIR}/extra-psyco-patch-torrentinfo-console.py
|
||||
.endif
|
||||
|
||||
# public.key
|
||||
PLIST_DIRS+= \
|
||||
%%DATADIR%%
|
||||
PLIST_FILES+= \
|
||||
%%DATADIR%%/public.key
|
||||
|
||||
pre-everything::
|
||||
.ifndef(WITHOUT_GUI)
|
||||
@${ECHO_MSG} '===> Define WITHOUT_GUI to disable GUI installation'
|
||||
.endif
|
||||
.ifndef(WITHOUT_PSYCO)
|
||||
@${ECHO_MSG} '===> Define WITHOUT_PSYCO to disable devel/py-psyco optimization'
|
||||
.endif
|
||||
|
||||
pre-patch:
|
||||
# do not install public.key, we will do it ourselves
|
||||
@${REINPLACE_CMD} -E \
|
||||
-e "s|^.*'public.key'.*$$||" \
|
||||
${WRKSRC}/setup.py
|
||||
|
||||
post-patch:
|
||||
# public.key will be located under ${DATADIR} not ${DOCSDIR}
|
||||
@${REINPLACE_CMD} -E \
|
||||
-e "s|%%DATADIR%%|'${DATADIR}/'|" \
|
||||
${WRKSRC}/BitTorrent/NewVersion.py
|
||||
|
||||
post-install:
|
||||
# set proper permissions
|
||||
@${CHMOD} -R ${SHAREMODE} \
|
||||
${PYTHONPREFIX_SITELIBDIR}/BitTorrent
|
||||
@${CHMOD} ${SHAREMODE} ${PYTHONPREFIX_SITELIBDIR}/BitTorrent
|
||||
@${CHMOD} -R a+X ${PYTHONPREFIX_SITELIBDIR}/BitTorrent
|
||||
.ifndef(WITHOUT_GUI)
|
||||
# pixmaps
|
||||
@${CHMOD} -R ${SHAREMODE} \
|
||||
${PREFIX}/share/pixmaps/${PORTNAME}/*
|
||||
@${CHMOD} -R a+X \
|
||||
${PREFIX}/share/pixmaps/${PORTNAME}
|
||||
.endif
|
||||
.ifndef(NOPORTDOCS)
|
||||
# docs
|
||||
@${CHMOD} -R ${SHAREMODE} \
|
||||
${DOCSDIR}/*
|
||||
# install missing doc
|
||||
@${INSTALL_DATA} ${WRKSRC}/TRACKERLESS.txt ${DOCSDIR}
|
||||
.endif
|
||||
# public.key
|
||||
@${MKDIR} ${DATADIR}
|
||||
@${INSTALL_DATA} ${WRKSRC}/public.key ${DATADIR}
|
||||
|
||||
.include <bsd.port.post.mk>
|
@ -1,3 +0,0 @@
|
||||
MD5 (BitTorrent-4.20.4.tar.gz) = 6616f6ae8a8460804ce43b3cf4b6f73b
|
||||
SHA256 (BitTorrent-4.20.4.tar.gz) = 54a231c6f95175fab6e493fef1e726f7f198d84396f0d6e5d6541db77b545d69
|
||||
SIZE (BitTorrent-4.20.4.tar.gz) = 2395512
|
@ -1,17 +0,0 @@
|
||||
--- setup.py.orig Sat Jun 24 16:54:04 2006
|
||||
+++ setup.py Sat Jun 24 16:54:55 2006
|
||||
@@ -42,2 +42,2 @@
|
||||
-symlinks = ["bittorrent" , "bittorrent-curses", "bittorrent-console",
|
||||
- "maketorrent", "maketorrent-console",
|
||||
+symlinks = ["bittorrent-curses", "bittorrent-console",
|
||||
+ "maketorrent-console",
|
||||
@@ -68,1 +68,0 @@
|
||||
- (img_root, ['images/bittorrent.ico',]),
|
||||
@@ -74,7 +74,0 @@
|
||||
-for d in ('flags', 'logo', 'themes/default',
|
||||
- 'themes/default/statuslight', 'themes/default/torrentstate',
|
||||
- 'themes/default/torrentops' , 'themes/default/fileops' ,):
|
||||
- data_files.append(
|
||||
- (os.path.join(img_root, d),
|
||||
- glob.glob(os.path.join('images', d, '*.png')))
|
||||
- )
|
@ -1,6 +0,0 @@
|
||||
--- setup.py.orig Sat Jun 24 16:55:50 2006
|
||||
+++ setup.py Sat Jun 24 16:57:02 2006
|
||||
@@ -69,3 +69,0 @@
|
||||
- (doc_root, ['credits.txt', 'credits-l10n.txt', 'LICENSE.txt', 'README.txt',
|
||||
-
|
||||
- 'INSTALL.unix.txt'] + extra_docs),
|
@ -1,16 +0,0 @@
|
||||
--- bittorrent-console.py.orig Tue Jun 6 20:43:25 2006
|
||||
+++ bittorrent-console.py Thu Jun 15 14:44:32 2006
|
||||
@@ -14,6 +14,13 @@
|
||||
|
||||
from __future__ import division
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
from BitTorrent.translation import _
|
||||
|
||||
import pdb
|
@ -1,16 +0,0 @@
|
||||
--- bittorrent-curses.py.orig Tue Jun 6 20:43:25 2006
|
||||
+++ bittorrent-curses.py Thu Jun 15 14:45:05 2006
|
||||
@@ -15,6 +15,13 @@
|
||||
|
||||
from __future__ import division
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
from BitTorrent.translation import _
|
||||
|
||||
SPEW_SCROLL_RATE = 1
|
@ -1,16 +0,0 @@
|
||||
--- bittorrent-tracker.py Wed Oct 12 01:08:15 2005
|
||||
+++ bittorrent-tracker.py Wed Oct 12 07:57:55 2005
|
||||
@@ -12,6 +12,13 @@
|
||||
|
||||
# Written by Bram Cohen
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
if __name__ == '__main__':
|
||||
from BitTorrent.platform import install_translation
|
||||
install_translation()
|
@ -1,16 +0,0 @@
|
||||
--- bittorrent.py.orig Tue May 16 20:59:49 2006
|
||||
+++ bittorrent.py Thu May 18 23:04:01 2006
|
||||
@@ -14,6 +14,13 @@
|
||||
|
||||
from __future__ import division
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
import os
|
||||
import sys
|
||||
try:
|
@ -1,16 +0,0 @@
|
||||
--- changetracker-console.py.orig Tue Jun 6 20:43:34 2006
|
||||
+++ changetracker-console.py Thu Jun 15 14:45:47 2006
|
||||
@@ -12,6 +12,13 @@
|
||||
|
||||
# Written by Henry 'Pi' James and Bram Cohen
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
from BitTorrent.translation import _
|
||||
|
||||
from os.path import basename
|
@ -1,16 +0,0 @@
|
||||
--- launchmany-console.py Wed Oct 12 01:08:27 2005
|
||||
+++ launchmany-console.py Wed Oct 12 07:58:23 2005
|
||||
@@ -12,6 +12,13 @@
|
||||
|
||||
# Written by John Hoffman
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
if __name__ == '__main__':
|
||||
from BitTorrent.platform import install_translation
|
||||
install_translation()
|
@ -1,16 +0,0 @@
|
||||
--- launchmany-curses.py.orig Tue Jun 6 20:43:42 2006
|
||||
+++ launchmany-curses.py Thu Jun 15 14:46:16 2006
|
||||
@@ -14,6 +14,13 @@
|
||||
|
||||
from __future__ import division
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
from BitTorrent.translation import _
|
||||
|
||||
DOWNLOAD_SCROLL_RATE = 1
|
@ -1,16 +0,0 @@
|
||||
--- maketorrent-console.py Wed Oct 12 01:08:27 2005
|
||||
+++ maketorrent-console.py Wed Oct 12 07:58:31 2005
|
||||
@@ -12,6 +12,13 @@
|
||||
|
||||
# Written by Bram Cohen
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
if __name__ == '__main__':
|
||||
from BitTorrent.platform import install_translation
|
||||
install_translation()
|
@ -1,16 +0,0 @@
|
||||
--- maketorrent.py.orig Tue Jun 6 20:43:43 2006
|
||||
+++ maketorrent.py Thu Jun 15 14:46:45 2006
|
||||
@@ -14,6 +14,13 @@
|
||||
|
||||
from __future__ import division
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
from BitTorrent.translation import _
|
||||
|
||||
import os
|
@ -1,16 +0,0 @@
|
||||
--- torrentinfo-console.py.orig Tue Jun 6 20:44:39 2006
|
||||
+++ torrentinfo-console.py Thu Jun 15 14:47:13 2006
|
||||
@@ -12,6 +12,13 @@
|
||||
|
||||
# Written by Henry 'Pi' James, Loring Holden and Matt Chisholm
|
||||
|
||||
+try:
|
||||
+ import psyco
|
||||
+ assert psyco.__version__ >= 0x010300f0
|
||||
+ psyco.full()
|
||||
+except:
|
||||
+ pass
|
||||
+
|
||||
from BitTorrent.translation import _
|
||||
|
||||
from sys import *
|
@ -1,11 +0,0 @@
|
||||
--- ./BitTorrent/AutoUpdateButler.py.orig Fri Jul 28 23:30:10 2006
|
||||
+++ ./BitTorrent/AutoUpdateButler.py Fri Jul 28 23:29:47 2006
|
||||
@@ -375,7 +375,7 @@
|
||||
self.multitorrent.remove_auto_updates_except(infohash)
|
||||
|
||||
try:
|
||||
- df = self.multitorrent.create_torrent(metainfo, installer_path, installer_path, hidden=True, is_auto_update=True)
|
||||
+ df = self.multitorrent.create_torrent(metainfo, installer_path, installer_path, installer_path, installer_path, hidden=True, is_auto_update=True)
|
||||
yield df
|
||||
df.getResult()
|
||||
except TorrentAlreadyRunning:
|
@ -1,11 +0,0 @@
|
||||
--- ./BitTorrent/HTTPHandler.py.orig Wed Jul 12 02:18:18 2006
|
||||
+++ ./BitTorrent/HTTPHandler.py Sat Jul 22 17:42:24 2006
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
|
||||
|
||||
-DEBUG = True
|
||||
+DEBUG = False
|
||||
|
||||
weekdays = [_("Mon"), _("Tue"), _("Wed"), _("Thu"), _("Fri"), _("Sat"), _("Sun")]
|
||||
|
@ -1,35 +0,0 @@
|
||||
--- ./BitTorrent/MultiTorrent.py.orig Mon Jul 24 00:58:59 2006
|
||||
+++ ./BitTorrent/MultiTorrent.py Sat Jul 29 00:02:03 2006
|
||||
@@ -270,6 +270,8 @@
|
||||
self.logger.log(severity, message, exc_info=exc_info)
|
||||
|
||||
def create_torrent(self, metainfo, save_incomplete_as, save_as,
|
||||
+ saveas_style_save_incomplete_as=None,
|
||||
+ saveas_style_save_as=None,
|
||||
hidden=False, is_auto_update=False):
|
||||
if self.is_single_torrent and len(self.torrents) > 0:
|
||||
print "create_torrent: len(self.torrents)=", len(self.torrents)
|
||||
@@ -295,9 +297,11 @@
|
||||
infohash,
|
||||
lambda s : self.global_error(logging.ERROR, s))
|
||||
|
||||
- t = Torrent(metainfo, save_incomplete_as, save_as, self.config,
|
||||
- self.data_dir, self.rawserver, self.choker,
|
||||
- self.singleport_listener, self.ratelimiter,
|
||||
+ t = Torrent(metainfo, save_incomplete_as, save_as,
|
||||
+ saveas_style_save_incomplete_as,
|
||||
+ saveas_style_save_as,
|
||||
+ self.config, self.data_dir, self.rawserver,
|
||||
+ self.choker, self.singleport_listener, self.ratelimiter,
|
||||
self.total_downmeasure, self.filepool, self.dht, self,
|
||||
self.log_root, hidden=hidden, is_auto_update=is_auto_update)
|
||||
retdf = Deferred()
|
||||
@@ -686,7 +690,7 @@
|
||||
'('+unicode(e.args[0])+')')
|
||||
return None
|
||||
|
||||
- t = Torrent(metainfo, "", "", self.config, self.data_dir,
|
||||
+ t = Torrent(metainfo, "", "", "", "", self.config, self.data_dir,
|
||||
self.rawserver, self.choker,
|
||||
self.singleport_listener, self.ratelimiter,
|
||||
self.total_downmeasure, self.filepool, self.dht, self,
|
@ -1,11 +0,0 @@
|
||||
--- ./BitTorrent/NewVersion.py.orig Mon Jun 12 22:45:49 2006
|
||||
+++ ./BitTorrent/NewVersion.py Wed Jun 21 23:57:08 2006
|
||||
@@ -170,7 +170,7 @@
|
||||
self.threadwrap(self.errorfunc, logging.WARNING, '\n'.join(terrors))
|
||||
|
||||
if torrentfile and signature:
|
||||
- public_key_file = open(os.path.join(doc_root, 'public.key'), 'rb')
|
||||
+ public_key_file = open(os.path.join(%%DATADIR%%, 'public.key'), 'rb')
|
||||
public_key = pickle.load(public_key_file)
|
||||
h = sha(torrentfile).digest()
|
||||
if public_key.verify(h, signature):
|
@ -1,11 +0,0 @@
|
||||
--- ./BitTorrent/OldTorrentQueue.py.orig Wed Jul 12 02:18:22 2006
|
||||
+++ ./BitTorrent/OldTorrentQueue.py Sat Jul 22 17:42:24 2006
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
|
||||
from BitTorrent.platform import bttime
|
||||
-from BitTorrent.download import Feedback, Multitorrent
|
||||
+from BitTorrent.MultiTorrent import Feeback, MultiTorrent
|
||||
from BitTorrent.bencode import bdecode
|
||||
from BitTorrent.ConvertedMetainfo import ConvertedMetainfo
|
||||
from BitTorrent.prefs import Preferences
|
@ -1,12 +0,0 @@
|
||||
--- ./BitTorrent/Rerequester.py.orig Wed Jul 12 02:18:25 2006
|
||||
+++ ./BitTorrent/Rerequester.py Sat Jul 22 17:42:24 2006
|
||||
@@ -369,7 +369,8 @@
|
||||
def _postrequest(self, data=None, errormsg=None, exc=None, peerid=None):
|
||||
assert thread.get_ident() == self.rawserver.ident
|
||||
self.current_started = None
|
||||
- self.errorfunc(logging.INFO, 'postrequest: ' + str(self.current_started))
|
||||
+ if self.current_started is not None:
|
||||
+ self.errorfunc(logging.INFO, 'postrequest: ' + str(self.current_started))
|
||||
self.last_time = bttime()
|
||||
if self.dead:
|
||||
return
|
@ -1,61 +0,0 @@
|
||||
--- ./BitTorrent/Torrent.py.orig Wed Jul 12 02:18:28 2006
|
||||
+++ ./BitTorrent/Torrent.py Sat Jul 29 00:08:59 2006
|
||||
@@ -58,7 +58,6 @@
|
||||
|
||||
from khashmir import const
|
||||
|
||||
-
|
||||
class Feedback(object):
|
||||
"""Inidivual torrents (Torrent) perform callbacks regarding
|
||||
changes of state to the rest of the program via a Feedback
|
||||
@@ -90,8 +89,9 @@
|
||||
POLICIES = ["stop", "start", "auto"]
|
||||
PRIORITIES = ["low", "normal", "high"]
|
||||
|
||||
- def __init__(self, metainfo, working_path, destination_path, config,
|
||||
- data_dir, rawserver, choker,
|
||||
+ def __init__(self, metainfo, working_path, destination_path,
|
||||
+ saveas_style_working_path, saveas_style_destination_path,
|
||||
+ config, data_dir, rawserver, choker,
|
||||
singleport_listener, ratelimiter, total_downmeasure,
|
||||
filepool, dht, feedback, log_root,
|
||||
hidden=False, is_auto_update=False):
|
||||
@@ -152,8 +152,11 @@
|
||||
|
||||
self.config = Preferences(config)#, persist_callback=self._dump_torrent_config)
|
||||
self.working_path = working_path #sets in config. See _set_working_path
|
||||
-
|
||||
self.destination_path = destination_path # sets in config.
|
||||
+
|
||||
+ self.saveas_style_working_path = saveas_style_working_path
|
||||
+ self.saveas_style_destination_path = saveas_style_destination_path
|
||||
+
|
||||
self.priority = "normal"
|
||||
self.policy = "auto"
|
||||
|
||||
@@ -258,6 +261,9 @@
|
||||
def is_running(self):
|
||||
return self.state == "running"
|
||||
|
||||
+ def is_seeding(self):
|
||||
+ return self._activity == (_("seeding"), 1)
|
||||
+
|
||||
def is_context_valid(self):
|
||||
return self.context_valid
|
||||
|
||||
@@ -819,8 +825,13 @@
|
||||
self.logger.debug("successfully paused torrent, moving file")
|
||||
|
||||
self.state = "finishing"
|
||||
- df = ThreadedDeferred(_wrap_task(self._rawserver.external_add_task),
|
||||
- move, self.working_path, self.destination_path)
|
||||
+ if self.saveas_style_working_path is not None and self.saveas_style_destination_path is not None:
|
||||
+ df = ThreadedDeferred(_wrap_task(self._rawserver.external_add_task),
|
||||
+ move, self.saveas_style_working_path,
|
||||
+ self.saveas_style_destination_path)
|
||||
+ else:
|
||||
+ df = ThreadedDeferred(_wrap_task(self._rawserver.external_add_task),
|
||||
+ move, self.working_path, self.destination_path)
|
||||
yield df
|
||||
df.getResult()
|
||||
|
@ -1,15 +0,0 @@
|
||||
--- ./BitTorrent/XMultiTorrent.py.orig Fri Jul 28 23:25:45 2006
|
||||
+++ ./BitTorrent/XMultiTorrent.py Fri Jul 28 23:27:31 2006
|
||||
@@ -50,10 +50,10 @@
|
||||
|
||||
return Binary(infohash)
|
||||
|
||||
- def _create_torrent(self, torrent, dlpath):
|
||||
+ def _create_torrent(self, torrent, save_incomplete_as, save_as):
|
||||
d = bdecode(torrent)
|
||||
metainfo = ConvertedMetainfo(d)
|
||||
- self.multitorrent.create_torrent(metainfo, dlpath)
|
||||
+ self.multitorrent.create_torrent(metainfo, save_incomplete_as, save_as)
|
||||
return metainfo.infohash
|
||||
|
||||
def xmlrpc_start_torrent(self, infohash):
|
@ -1,15 +0,0 @@
|
||||
--- ./BitTorrent/XTorrentQueue.py.orig Fri Jul 28 23:27:55 2006
|
||||
+++ ./BitTorrent/XTorrentQueue.py Fri Jul 28 23:28:20 2006
|
||||
@@ -32,10 +32,10 @@
|
||||
|
||||
return Binary(infohash)
|
||||
|
||||
- def _create_torrent(self, torrent, dlpath):
|
||||
+ def _create_torrent(self, torrent, save_incomplete_as, save_as):
|
||||
d = bdecode(torrent)
|
||||
metainfo = ConvertedMetainfo(d)
|
||||
- self.tq.create_torrent(metainfo, dlpath)
|
||||
+ self.tq.create_torrent(metainfo, save_incomplete_as, save_as)
|
||||
return metainfo.infohash
|
||||
|
||||
def xmlrpc_start_torrent(self, infohash):
|
@ -1,22 +0,0 @@
|
||||
--- ./BitTorrent/defaultargs.py.orig Wed Jul 12 02:18:33 2006
|
||||
+++ ./BitTorrent/defaultargs.py Sat Jul 22 17:42:24 2006
|
||||
@@ -20,6 +20,8 @@
|
||||
if os.name == 'posix':
|
||||
if os.uname()[0] in ['Darwin']:
|
||||
BAD_LIBC_WORKAROUND_DEFAULT = True
|
||||
+ if os.uname()[0] in ['FreeBSD']:
|
||||
+ BAD_LIBC_WORKAROUND_DEFAULT = True
|
||||
|
||||
MAX_INCOMPLETE = 100
|
||||
MAX_FILES_OPEN = 50
|
||||
@@ -376,6 +378,10 @@
|
||||
"name determined by --saveas_style. If this is left empty "
|
||||
"each torrent will be saved under the directory of the "
|
||||
"corresponding .torrent file")),
|
||||
+ ('save_incomplete_in', u'',
|
||||
+ _("local directory where the incomplete torrent downloads will be "
|
||||
+ "stored until completion. Upon completion, downloads will be "
|
||||
+ "moved to the directory specified by --save_in.")),
|
||||
('parse_dir_interval', 60,
|
||||
_("how often to rescan the torrent directory, in seconds") ),
|
||||
('launch_delay', 0,
|
@ -1,475 +0,0 @@
|
||||
--- ./BitTorrent/launchmanycore.py.orig Wed Jul 12 02:18:34 2006
|
||||
+++ ./BitTorrent/launchmanycore.py Fri Jul 28 23:45:22 2006
|
||||
@@ -22,14 +22,17 @@
|
||||
from traceback import print_exc
|
||||
import logging
|
||||
from BitTorrent import configfile
|
||||
+from BitTorrent import platform
|
||||
from BitTorrent.parsedir import parsedir
|
||||
-from BitTorrent.MultiTorrent import MultiTorrent, Feedback
|
||||
+from BitTorrent.MultiTorrent import MultiTorrent, Feedback, TorrentAlreadyRunning, TorrentAlreadyInQueue, TorrentNotInitialized
|
||||
from BitTorrent.ConvertedMetainfo import ConvertedMetainfo
|
||||
from BitTorrent import BTFailure, UserFailure
|
||||
from BitTorrent.RawServer_twisted import RawServer
|
||||
from BitTorrent.yielddefer import launch_coroutine, _wrap_task
|
||||
from BitTorrent.ConvertedMetainfo import ConvertedMetainfo
|
||||
from BitTorrent.defer import DeferredEvent
|
||||
+from BitTorrent.platform import encode_for_filesystem
|
||||
+from BitTorrent.prefs import Preferences
|
||||
from time import time
|
||||
|
||||
|
||||
@@ -51,13 +54,13 @@
|
||||
# logger Formatter, which is specific to exceptions, warnings, and
|
||||
# info messages.
|
||||
try:
|
||||
+ self.display = display.display
|
||||
self.logger = logging.getLogger(configfile_key)
|
||||
|
||||
self.multitorrent = None
|
||||
self.rawserver = None
|
||||
- self.config = config
|
||||
+ self.config = Preferences().initWithDict(config)
|
||||
self.configfile_key = configfile_key
|
||||
- self.display = display
|
||||
|
||||
self.torrent_dir = config['torrent_dir']
|
||||
|
||||
@@ -78,30 +81,31 @@
|
||||
|
||||
self.hashcheck_queue = []
|
||||
self.hashcheck_store = {}
|
||||
- self.hashcheck_current = None
|
||||
|
||||
self.core_doneflag = DeferredEvent()
|
||||
- rawserver_doneflag = DeferredEvent()
|
||||
+ self.rawserver_doneflag = DeferredEvent()
|
||||
self.rawserver = RawServer(self.config)
|
||||
try:
|
||||
|
||||
# set up shut-down procedure before we begin doing things that
|
||||
# can throw exceptions.
|
||||
def shutdown():
|
||||
- print "SHUTDOWNSHUTDOWNSHUTDOWN"
|
||||
+ #print "SHUTDOWNSHUTDOWNSHUTDOWN"
|
||||
self.logger.critical(_("shutting down"))
|
||||
- for infohash in self.multitorrent.get_torrents():
|
||||
- self.logger.info(_('dropped "%s"') %
|
||||
- self.torrent_cache[infohash]['path'])
|
||||
- # torrent = self.downloads[infohash]
|
||||
- # if torrent is not None:
|
||||
- # torrent.shutdown()
|
||||
+ for torrent in self.multitorrent.get_torrents():
|
||||
+ try:
|
||||
+ removed = self.torrent_cache[torrent.infohash]['path']
|
||||
+ self.logger.info(_('dropped "%s"') % removed)
|
||||
+ except KeyError:
|
||||
+ pass
|
||||
+ if torrent is not None:
|
||||
+ torrent.shutdown()
|
||||
if self.multitorrent:
|
||||
df = self.multitorrent.shutdown()
|
||||
- set_flag = lambda *a : rawserver_doneflag.set()
|
||||
+ set_flag = lambda *a : self.rawserver_doneflag.set()
|
||||
df.addCallbacks(set_flag, set_flag)
|
||||
else:
|
||||
- rawserver_doneflag.set()
|
||||
+ self.rawserver_doneflag.set()
|
||||
|
||||
# It is safe to addCallback here, because there is only one thread,
|
||||
# but even if the code were multi-threaded, core_doneflag has not
|
||||
@@ -112,9 +116,9 @@
|
||||
|
||||
self.rawserver.install_sigint_handler(self.core_doneflag)
|
||||
|
||||
- data_dir = config['data_dir']
|
||||
- print "Creating MultiTorrent"
|
||||
- self.multitorrent = MultiTorrent(config, self.rawserver, data_dir)
|
||||
+ data_dir = self.config['data_dir']
|
||||
+ #print "Creating MultiTorrent"
|
||||
+ self.multitorrent = MultiTorrent(self.config, self.rawserver, data_dir)
|
||||
|
||||
self.rawserver.add_task(0, self.scan)
|
||||
self.rawserver.add_task(0, self.stats)
|
||||
@@ -131,162 +135,221 @@
|
||||
self.rawserver.add_task(0,self.core_doneflag.set())
|
||||
|
||||
except UserFailure, e:
|
||||
- output.exception(unicode(e.args[0]))
|
||||
+ display.exception(unicode(e.args[0]))
|
||||
self.rawserver.add_task(0,self.core_doneflag.set())
|
||||
except:
|
||||
data = StringIO()
|
||||
print_exc(file = data)
|
||||
- output.exception(data.getvalue())
|
||||
+ display.exception(data.getvalue())
|
||||
self.rawserver.add_task(0,self.core_doneflag.set())
|
||||
|
||||
# always make sure events get processed even if only for
|
||||
# shutting down.
|
||||
- print "listening forever"
|
||||
- self.rawserver.listen_forever(rawserver_doneflag)
|
||||
+ #print "listening forever"
|
||||
+ try:
|
||||
+ self.rawserver.listen_forever(self.rawserver_doneflag)
|
||||
+ except AttributeError, e:
|
||||
+ output.message(str(e))
|
||||
+ raise
|
||||
+ except KeyboardInterrupt:
|
||||
+ raise
|
||||
|
||||
except:
|
||||
data = StringIO()
|
||||
print_exc(file = data)
|
||||
- output.exception(data.getvalue())
|
||||
+ display.exception(data.getvalue())
|
||||
+ self.core_doneflag.set()
|
||||
+ self.rawserver_doneflag.set()
|
||||
|
||||
def scan(self):
|
||||
- print "LaunchMany.scan top."
|
||||
+ #print "LaunchMany.scan top."
|
||||
self.rawserver.add_task(self.config['parse_dir_interval'], self.scan)
|
||||
|
||||
r = parsedir(self.torrent_dir, self.torrent_cache,
|
||||
self.file_cache, self.blocked_files,
|
||||
self.logger.error)
|
||||
|
||||
- print "After parsedir"
|
||||
+ #print "After parsedir"
|
||||
( self.torrent_cache, self.file_cache, self.blocked_files,
|
||||
added, removed ) = r
|
||||
for infohash, data in removed.items():
|
||||
self.logger.info(_('dropped "%s"') % data['path'])
|
||||
self.remove(infohash)
|
||||
for infohash, data in added.items():
|
||||
- print "adding item:", data['path']
|
||||
+ #print "adding item:", data['path']
|
||||
self.logger.info(_('added "%s"' ) % data['path'])
|
||||
- print "after self.logger.info"
|
||||
+ #print "after self.logger.info"
|
||||
if self.config['launch_delay'] > 0:
|
||||
self.rawserver.add_task(self.config['launch_delay'], self.add, infohash, data)
|
||||
# torrent may have been known from resume state.
|
||||
elif not self.multitorrent.torrent_known(infohash):
|
||||
self.add(infohash, data)
|
||||
- print "LaunchMany.scan bottom"
|
||||
+ #print "LaunchMany.scan bottom"
|
||||
|
||||
def stats(self):
|
||||
self.rawserver.add_task(self.config['display_interval'], self.stats)
|
||||
data = []
|
||||
- for d in self.get_torrents():
|
||||
- infohash = d.infohash
|
||||
- cache = self.torrent_cache[infohash]
|
||||
- if self.config['display_path']:
|
||||
- name = cache['path']
|
||||
- else:
|
||||
- name = cache['name']
|
||||
- size = cache['length']
|
||||
- #d = self.downloads[infohash]
|
||||
- progress = '0.0%'
|
||||
- peers = 0
|
||||
- seeds = 0
|
||||
- seedsmsg = "S"
|
||||
- dist = 0.0
|
||||
- uprate = 0.0
|
||||
- dnrate = 0.0
|
||||
- upamt = 0
|
||||
- dnamt = 0
|
||||
- t = 0
|
||||
- msg = ''
|
||||
- #if d.state in ["created", "initializing"]:
|
||||
- # status = _("waiting for hash check")
|
||||
- #else:
|
||||
- stats = d.get_status()
|
||||
- status = stats['activity']
|
||||
- progress = '%.1f%%' % (int(stats['fractionDone']*1000)/10.0)
|
||||
- if d.is_running():
|
||||
- s = stats
|
||||
- dist = s['numCopies']
|
||||
- if d.is_seed:
|
||||
- seeds = 0 # s['numOldSeeds']
|
||||
- seedsmsg = "s"
|
||||
+ for d in self.multitorrent.get_torrents():
|
||||
+ if d is not None:
|
||||
+ infohash = d.infohash
|
||||
+ try:
|
||||
+ cache = self.torrent_cache[infohash]
|
||||
+ except KeyError:
|
||||
+ self.remove(infohash)
|
||||
+ continue
|
||||
+ if self.config['display_path']:
|
||||
+ name = cache['path']
|
||||
else:
|
||||
- if s['numSeeds'] + s['numPeers']:
|
||||
- t = stats['timeEst']
|
||||
- if t is None:
|
||||
- t = -1
|
||||
- if t == 0: # unlikely
|
||||
- t = 0.01
|
||||
- status = _("downloading")
|
||||
+ name = cache['name']
|
||||
+ size = cache['length']
|
||||
+ progress = '0.0%'
|
||||
+ peers = 0
|
||||
+ seeds = 0
|
||||
+ seedsmsg = "S"
|
||||
+ dist = 0.0
|
||||
+ uprate = 0.0
|
||||
+ dnrate = 0.0
|
||||
+ upamt = 0
|
||||
+ dnamt = 0
|
||||
+ t = 0
|
||||
+ msg = ''
|
||||
+ #if d.state in ["created", "initializing"]:
|
||||
+ # status = _("waiting for hash check")
|
||||
+ #else:
|
||||
+ stats = d.get_status()
|
||||
+ status = stats['activity']
|
||||
+ progress = '%.1f%%' % (int(stats['fractionDone']*1000)/10.0)
|
||||
+ if d.is_running():
|
||||
+ s = stats
|
||||
+ dist = int(s['distributed_copies'])
|
||||
+ if d.is_seeding():
|
||||
+ seeds = 0 # s['numOldSeeds']
|
||||
+ seedsmsg = "s"
|
||||
else:
|
||||
- t = -1
|
||||
- status = _("connecting to peers")
|
||||
- seeds = s['numSeeds']
|
||||
- dnrate = stats['downRate']
|
||||
- peers = s['numPeers']
|
||||
- uprate = stats['upRate']
|
||||
- upamt = s['upTotal']
|
||||
- dnamt = s['downTotal']
|
||||
+ if s['numSeeds'] + s['numPeers']:
|
||||
+ t = stats['timeEst']
|
||||
+ if t is None:
|
||||
+ t = -1
|
||||
+ if t == 0: # unlikely
|
||||
+ t = 0.01
|
||||
+ status = _("downloading")
|
||||
+ else:
|
||||
+ t = -1
|
||||
+ status = _("connecting to peers")
|
||||
+ seeds = s['numSeeds']
|
||||
+ dnrate = stats['downRate']
|
||||
+ peers = s['numPeers']
|
||||
+ uprate = stats['upRate']
|
||||
+ upamt = s['upTotal']
|
||||
+ dnamt = s['downTotal']
|
||||
|
||||
- data.append(( name, status, progress, peers, seeds, seedsmsg, dist,
|
||||
+ data.append(( name, status, progress, peers, seeds, seedsmsg, dist,
|
||||
uprate, dnrate, upamt, dnamt, size, t, msg ))
|
||||
stop = self.display(data)
|
||||
if stop:
|
||||
self.core_doneflag.set()
|
||||
|
||||
def remove(self, infohash):
|
||||
- self.torrent_list.remove(infohash)
|
||||
- if self.downloads[infohash] is not None:
|
||||
- self.downloads[infohash].shutdown()
|
||||
+ torrent = self.multitorrent.get_torrent(infohash)
|
||||
+ if torrent is not None:
|
||||
+ torrent.shutdown()
|
||||
self.was_stopped(infohash)
|
||||
- del self.downloads[infohash]
|
||||
|
||||
def add(self, infohash, data):
|
||||
-
|
||||
# data is a dict like
|
||||
# { path:'/a/b/c.torrent', file:'c.torrent', length:90911, name:'Sea',
|
||||
# metainfo: <metainfo>} Metainfo has bdecoded but not passed
|
||||
# to ConvertedMetainfo.
|
||||
- self.torrent_list.append(infohash)
|
||||
- self.downloads[infohash] = None
|
||||
self.hashcheck_queue.append(infohash)
|
||||
self.hashcheck_store[infohash] = ConvertedMetainfo(data['metainfo'])
|
||||
self.check_hashcheck_queue()
|
||||
|
||||
def check_hashcheck_queue(self):
|
||||
- if self.hashcheck_current is not None or not self.hashcheck_queue:
|
||||
+ if not self.hashcheck_queue:
|
||||
return
|
||||
- infohash = self.hashcheck_current = self.hashcheck_queue.pop(0)
|
||||
+ infohash = self.hashcheck_queue.pop(0)
|
||||
metainfo = self.hashcheck_store[infohash]
|
||||
del self.hashcheck_store[infohash]
|
||||
- filename = self.determine_filename(infohash)
|
||||
+ save_incomplete_as, save_as = self.determine_filename(infohash)
|
||||
+ saveas_style_save_incomplete_as, saveas_style_save_as = self._determine_filename(infohash)
|
||||
torrent_path = self.torrent_cache[infohash]['path']
|
||||
- self.start_torrent(torrent_path, metainfo, filename, filename)
|
||||
+ self.start_torrent(torrent_path, metainfo, save_incomplete_as,save_as,
|
||||
+ saveas_style_save_incomplete_as, saveas_style_save_as)
|
||||
|
||||
- def start_torrent(self,torrent_path,metainfo,save_incomplete_as,save_as):
|
||||
+ def start_torrent(self,torrent_path,metainfo,save_incomplete_as,save_as,
|
||||
+ saveas_style_save_incomplete_as=None,saveas_style_save_as=None):
|
||||
assert isinstance(metainfo, ConvertedMetainfo)
|
||||
df = launch_coroutine(_wrap_task(self.rawserver.add_task),
|
||||
self._start_torrent, metainfo,
|
||||
- save_incomplete_as, save_as)
|
||||
+ save_incomplete_as, save_as,
|
||||
+ saveas_style_save_incomplete_as=saveas_style_save_incomplete_as,
|
||||
+ saveas_style_save_as=saveas_style_save_as)
|
||||
df.addErrback(lambda e : self.logger.error(_("DIED: "),exc_info=e))
|
||||
return df
|
||||
|
||||
- def _start_torrent(self, metainfo, save_incomplete_as,save_as):
|
||||
+ def _start_torrent(self, metainfo, save_incomplete_as,save_as,
|
||||
+ saveas_style_save_incomplete_as,saveas_style_save_as):
|
||||
assert isinstance(metainfo, ConvertedMetainfo)
|
||||
- df = self.multitorrent.create_torrent(metainfo,
|
||||
- save_incomplete_as, save_as)
|
||||
- yield df
|
||||
- torrent = self.multitorrent.get_torrent(metainfo.infohash)
|
||||
- if torrent.is_initialized():
|
||||
- multitorrent.start_torrent(metainfo.infohash)
|
||||
- #else: ???? # this would be an error condition already reported
|
||||
- # to logger.
|
||||
- check_hashcheck_queue()
|
||||
+ save_incomplete_as, junk = platform.encode_for_filesystem(save_incomplete_as)
|
||||
+ save_as, junk = platform.encode_for_filesystem(save_as)
|
||||
+ if saveas_style_save_incomplete_as is not None:
|
||||
+ saveas_style_save_incomplete_as, junk = platform.encode_for_filesystem(saveas_style_save_incomplete_as)
|
||||
+ if saveas_style_save_as is not None:
|
||||
+ saveas_style_save_as, junk = platform.encode_for_filesystem(saveas_style_save_as)
|
||||
+ try:
|
||||
+ df = self.multitorrent.create_torrent(metainfo,
|
||||
+ save_incomplete_as, save_as,
|
||||
+ saveas_style_save_incomplete_as,
|
||||
+ saveas_style_save_as)
|
||||
+ yield df
|
||||
+ df.getResult()
|
||||
+ except (TorrentAlreadyRunning, TorrentAlreadyInQueue):
|
||||
+ pass
|
||||
+ except:
|
||||
+ raise
|
||||
|
||||
- def determine_filename(self, infohash):
|
||||
+ infohash = metainfo.infohash
|
||||
+
|
||||
+ # find out if torrent has been recorded
|
||||
+ try:
|
||||
+ torrent = self.multitorrent.get_torrent(infohash)
|
||||
+ if not torrent or torrent is None:
|
||||
+ raise UnknownInfohash(infohash.encode("hex"))
|
||||
+ except:
|
||||
+ raise
|
||||
+
|
||||
+ # function to requeue torrent if has not been initialized just yet
|
||||
+ def hashcheck_requeue(infohash):
|
||||
+ df = self.remove(infohash)
|
||||
+ data = self.torrent_cache[infohash]
|
||||
+ if self.config['launch_delay'] > 0:
|
||||
+ self.rawserver.add_task(self.config['launch_delay'], self.add, infohash, data)
|
||||
+ else:
|
||||
+ # wait at least 1
|
||||
+ self.rawserver.add_task(1, self.add, infohash, data)
|
||||
+
|
||||
+ # Is it running?
|
||||
+ running = self.multitorrent.torrent_running(infohash)
|
||||
+ if not running:
|
||||
+ try:
|
||||
+ if torrent.is_initialized():
|
||||
+ df = self.multitorrent.start_torrent(infohash)
|
||||
+ yield df
|
||||
+ df.getResult()
|
||||
+ else:
|
||||
+ raise TorrentNotInitialized
|
||||
+ except TorrentAlreadyRunning:
|
||||
+ pass
|
||||
+ except TorrentNotInitialized:
|
||||
+ hashcheck_requeue(infohash)
|
||||
+ except:
|
||||
+ raise
|
||||
+
|
||||
+ self.check_hashcheck_queue()
|
||||
+
|
||||
+ def determine_saveas_style(self, infohash):
|
||||
x = self.torrent_cache[infohash]
|
||||
name = x['name']
|
||||
- savein = self.config['save_in']
|
||||
- isdir = not x['metainfo']['info'].has_key('length')
|
||||
style = self.config['saveas_style']
|
||||
if style == 4:
|
||||
torrentname = os.path.split(x['path'][:-8])[1]
|
||||
@@ -295,20 +358,54 @@
|
||||
style = 1
|
||||
else:
|
||||
style = 3
|
||||
+ return style
|
||||
+
|
||||
+ # Specially handle the style 3 case.
|
||||
+ # Style 3 breaks Torrent.move so we have an intermediate
|
||||
+ # _determine_filename for Torrent.move benefit
|
||||
+ # but determine_filename for general use
|
||||
+ def determine_filename(self, infohash):
|
||||
+ x = self.torrent_cache[infohash]
|
||||
+ name = x['name']
|
||||
+ isdir = not x['metainfo']['info'].has_key('length')
|
||||
+ style = self.determine_saveas_style(infohash)
|
||||
+ saveincompleteas, saveas = self._determine_filename(infohash)
|
||||
+
|
||||
+ # add filename
|
||||
+ if style == 3 and not isdir:
|
||||
+ saveas = os.path.join(saveas, name)
|
||||
+ saveincompleteas = os.path.join(saveincompleteas, name)
|
||||
+
|
||||
+ return saveincompleteas, saveas
|
||||
+
|
||||
+ # generate paths appropriate for Torrent.move method
|
||||
+ def _determine_filename(self, infohash):
|
||||
+ x = self.torrent_cache[infohash]
|
||||
+ name = x['name']
|
||||
+ savein = self.config['save_in']
|
||||
+ saveincompletein = self.config['save_incomplete_in']
|
||||
+ style = self.determine_saveas_style(infohash)
|
||||
|
||||
if style == 1 or style == 3:
|
||||
if savein:
|
||||
saveas = os.path.join(savein,x['file'][:-8]) # strip '.torrent'
|
||||
else:
|
||||
saveas = x['path'][:-8] # strip '.torrent'
|
||||
- if style == 3 and not isdir:
|
||||
- saveas = os.path.join(saveas, name)
|
||||
+ if saveincompletein:
|
||||
+ saveincompleteas = os.path.join(saveincompletein, x['file'][:-8]) # strip '.torrent'
|
||||
+ else:
|
||||
+ saveincompleteas = x['path'][:-8] # strip '.torrent'
|
||||
else:
|
||||
if savein:
|
||||
saveas = os.path.join(savein, name)
|
||||
else:
|
||||
saveas = os.path.join(os.path.split(x['path'])[0], name)
|
||||
- return saveas
|
||||
+ if saveincompletein:
|
||||
+ saveincompleteas = os.path.join(saveincompletein, name)
|
||||
+ else:
|
||||
+ saveincompleteas = os.path.join(os.path.split(x['path'])[0], name)
|
||||
+
|
||||
+ return saveincompleteas, saveas
|
||||
|
||||
def was_stopped(self, infohash):
|
||||
try:
|
||||
@@ -317,8 +414,6 @@
|
||||
pass
|
||||
else:
|
||||
del self.hashcheck_store[infohash]
|
||||
- if self.hashcheck_current == infohash:
|
||||
- self.hashcheck_current = None
|
||||
self.check_hashcheck_queue()
|
||||
|
||||
# Exceptions are now reported via loggers.<
|
||||
@@ -343,7 +438,7 @@
|
||||
# the self.failed() callback can run during this loop.
|
||||
for option, value in newvalues.iteritems():
|
||||
self.multitorrent.set_option(option, value)
|
||||
- for torrent in self.downloads.values():
|
||||
+ for torrent in self.multitorrent.get_torrents():
|
||||
if torrent is not None:
|
||||
for option, value in newvalues.iteritems():
|
||||
torrent.set_option(option, value)
|
@ -1,11 +0,0 @@
|
||||
--- ./BitTorrent/platform.py.orig Wed Jul 12 02:18:37 2006
|
||||
+++ ./BitTorrent/platform.py Sat Jul 22 17:42:24 2006
|
||||
@@ -334,7 +334,7 @@
|
||||
|
||||
|
||||
def calc_unix_dirs():
|
||||
- appdir = '%s-%s'%(app_name, version)
|
||||
+ appdir = '%s'%(app_name)
|
||||
ip = os.path.join(efs(u'share')[0], efs(u'pixmaps')[0], appdir)
|
||||
dp = os.path.join(efs(u'share')[0], efs(u'doc')[0], appdir)
|
||||
lp = os.path.join(efs(u'share')[0], efs(u'locale')[0])
|
@ -1,32 +0,0 @@
|
||||
--- ./launchmany-console.py.orig Wed Jul 12 02:18:54 2006
|
||||
+++ ./launchmany-console.py Fri Jul 28 23:56:07 2006
|
||||
@@ -49,6 +49,10 @@
|
||||
uprate/1000, dnrate/1000, upamt/1024, dnamt/1024, msg))
|
||||
return False
|
||||
|
||||
+ def exception(self, s):
|
||||
+ exceptions.append(s)
|
||||
+ #logging.getLogger('').info(_("SYSTEM ERROR - EXCEPTION GENERATED"))
|
||||
+
|
||||
|
||||
if __name__ == '__main__':
|
||||
uiname = 'launchmany-console'
|
||||
@@ -76,7 +80,7 @@
|
||||
platform.decode_from_filesystem(torrent_dir)
|
||||
else:
|
||||
torrent_dir = config['torrent_dir']
|
||||
- torrent_dir,bad = platform.encode_from_filesystem(torrent_dir)
|
||||
+ torrent_dir,bad = platform.encode_for_filesystem(torrent_dir)
|
||||
if bad:
|
||||
raise BTFailure(_("Warning: ")+config['torrent_dir']+
|
||||
_(" is not a directory"))
|
||||
@@ -139,4 +143,8 @@
|
||||
#logging.getLogger().setLevel(INFO)
|
||||
logging.getLogger('').setLevel(0)
|
||||
|
||||
- LaunchMany(config, d.display, 'launchmany-console')
|
||||
+ LaunchMany(config, d, 'launchmany-console')
|
||||
+
|
||||
+ if exceptions:
|
||||
+ print _("\nEXCEPTION:")
|
||||
+ print exceptions[0]
|
@ -1,65 +0,0 @@
|
||||
--- ./launchmany-curses.py.orig Wed Jul 12 02:18:54 2006
|
||||
+++ ./launchmany-curses.py Fri Jul 28 23:42:45 2006
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
DOWNLOAD_SCROLL_RATE = 1
|
||||
|
||||
+import logging
|
||||
import sys, os
|
||||
from threading import Event
|
||||
from time import time, localtime, strftime
|
||||
@@ -101,7 +102,7 @@
|
||||
def winch_handler(self, signum, stackframe):
|
||||
self.changeflag.set()
|
||||
curses.endwin()
|
||||
- self.scrwin.refresh()
|
||||
+ self.scrwin.noutrefresh()
|
||||
self.scrwin = curses.newwin(0, 0, 0, 0)
|
||||
self._remake_window()
|
||||
self._display_messages()
|
||||
@@ -120,22 +121,26 @@
|
||||
self.mainpan = curses.panel.new_panel(self.mainwin)
|
||||
self.mainwin.scrollok(0)
|
||||
self.mainwin.nodelay(1)
|
||||
+ self.mainwin.clearok(1)
|
||||
|
||||
self.headerwin = curses.newwin(1, self.mainwinw+1,
|
||||
1, self.mainwinx)
|
||||
self.headerpan = curses.panel.new_panel(self.headerwin)
|
||||
self.headerwin.scrollok(0)
|
||||
+ self.headerwin.clearok(0)
|
||||
|
||||
self.totalwin = curses.newwin(1, self.mainwinw+1,
|
||||
self.mainwinh+1, self.mainwinx)
|
||||
self.totalpan = curses.panel.new_panel(self.totalwin)
|
||||
self.totalwin.scrollok(0)
|
||||
+ self.totalwin.clearok(0)
|
||||
|
||||
self.statuswinh = self.scrh-4-self.mainwinh
|
||||
self.statuswin = curses.newwin(self.statuswinh, self.mainwinw+1,
|
||||
self.mainwinh+3, self.mainwinx)
|
||||
self.statuspan = curses.panel.new_panel(self.statuswin)
|
||||
self.statuswin.scrollok(0)
|
||||
+ self.statuswin.clearok(1)
|
||||
|
||||
try:
|
||||
self.scrwin.border(ord('|'),ord('|'),ord('-'),ord('-'),ord(' '),ord(' '),ord(' '),ord(' '))
|
||||
@@ -277,7 +282,8 @@
|
||||
|
||||
|
||||
def LaunchManyWrapper(scrwin, config):
|
||||
- LaunchMany(config, CursesDisplayer(scrwin), 'launchmany-curses')
|
||||
+ d = CursesDisplayer(scrwin)
|
||||
+ LaunchMany(config, d, 'launchmany-curses')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
@@ -306,7 +312,7 @@
|
||||
platform.decode_from_filesystem(torrent_dir)
|
||||
else:
|
||||
torrent_dir = config['torrent_dir']
|
||||
- torrent_dir,bad = platform.encode_from_filesystem(torrent_dir)
|
||||
+ torrent_dir,bad = platform.encode_for_filesystem(torrent_dir)
|
||||
if bad:
|
||||
raise BTFailure(_("Warning: ")+config['torrent_dir']+
|
||||
_(" is not a directory"))
|
@ -1,11 +0,0 @@
|
||||
[ excerpt from distribution's README.txt ]
|
||||
|
||||
BitTorrent is a tool for distributing files. It's extremely easy
|
||||
to use - downloads are started by clicking on hyperlinks. Whenever
|
||||
more than one person is downloading at once they send pieces of the
|
||||
file(s) to each other, thus relieving the central server's bandwidth
|
||||
burden. Even with many simultaneous downloads, the upload burden
|
||||
on the central server remains quite small, since each new downloader
|
||||
introduces new upload capacity.
|
||||
|
||||
WWW: http://www.bittorrent.com/
|
@ -1,376 +0,0 @@
|
||||
bin/bittorrent-console
|
||||
bin/bittorrent-curses
|
||||
bin/bittorrent-tracker
|
||||
bin/changetracker-console
|
||||
bin/launchmany-console
|
||||
bin/launchmany-curses
|
||||
bin/maketorrent-console
|
||||
bin/torrentinfo-console
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/AutoUpdateButler.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/AutoUpdateButler.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/AutoUpdateButler.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/BandwidthManager.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/BandwidthManager.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/BandwidthManager.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/BeautifulSupe.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/BeautifulSupe.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/BeautifulSupe.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Choker.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Choker.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Choker.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ClientIdentifier.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ClientIdentifier.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ClientIdentifier.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ConnectionManager.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ConnectionManager.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ConnectionManager.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ConnectionRateLimitReactor.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ConnectionRateLimitReactor.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ConnectionRateLimitReactor.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Connector.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Connector.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Connector.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ConvertedMetainfo.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ConvertedMetainfo.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ConvertedMetainfo.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/CurrentRateMeasure.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/CurrentRateMeasure.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/CurrentRateMeasure.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/DictWithLists.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/DictWithLists.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/DictWithLists.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Download.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Download.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Download.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/FeedManager.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/FeedManager.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/FeedManager.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/Bling.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/Bling.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/Bling.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/CustomWidgets.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/CustomWidgets.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/CustomWidgets.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/DownloadManager.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/DownloadManager.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/DownloadManager.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/LanguageSettings.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/LanguageSettings.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/LanguageSettings.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/ListCtrl.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/ListCtrl.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/ListCtrl.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/OpenDialog.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/OpenDialog.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/OpenDialog.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/SettingsWindow.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/SettingsWindow.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/SettingsWindow.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/StatusLight.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/StatusLight.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/StatusLight.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/ToolTip.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/ToolTip.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/ToolTip.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/__init__.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx/__init__.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GetTorrent.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GetTorrent.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/GetTorrent.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/HTTPConnector.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/HTTPConnector.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/HTTPConnector.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/HTTPHandler.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/HTTPHandler.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/HTTPHandler.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/HostIP.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/HostIP.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/HostIP.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/IPC.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/IPC.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/IPC.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/InternetWatcher.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/InternetWatcher.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/InternetWatcher.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/LaunchPath.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/LaunchPath.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/LaunchPath.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Lists.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Lists.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Lists.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/LocalDiscovery.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/LocalDiscovery.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/LocalDiscovery.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/MultiDownload.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/MultiDownload.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/MultiDownload.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/MultiTorrent.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/MultiTorrent.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/MultiTorrent.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NamedMutex.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NamedMutex.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NamedMutex.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NatCheck.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NatCheck.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NatCheck.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NatTraversal.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NatTraversal.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NatTraversal.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NewRateLimiter.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NewRateLimiter.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NewRateLimiter.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NewVersion.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NewVersion.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/NewVersion.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/OldTorrentQueue.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/OldTorrentQueue.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/OldTorrentQueue.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PeerID.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PeerID.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PeerID.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PiecePicker.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PiecePicker.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PiecePicker.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PieceSetBuckets.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PieceSetBuckets.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PieceSetBuckets.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PluginSupport.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PluginSupport.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/PluginSupport.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RTTMonitor.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RTTMonitor.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RTTMonitor.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RateLimiter.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RateLimiter.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RateLimiter.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RateMeasure.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RateMeasure.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RateMeasure.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RawServer_twisted.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RawServer_twisted.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/RawServer_twisted.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Rerequester.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Rerequester.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Rerequester.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/StatusLight.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/StatusLight.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/StatusLight.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/StorageWrapper.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/StorageWrapper.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/StorageWrapper.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage_IOCP.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage_IOCP.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage_IOCP.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage_base.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage_base.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage_base.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage_threadpool.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage_threadpool.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Storage_threadpool.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ThreadProxy.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ThreadProxy.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ThreadProxy.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Torrent.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Torrent.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Torrent.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/TorrentButler.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/TorrentButler.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/TorrentButler.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/TorrentPolicy.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/TorrentPolicy.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/TorrentPolicy.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/TorrentStats.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/TorrentStats.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/TorrentStats.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/UI.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/UI.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/UI.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Upload.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Upload.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/Upload.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/XMultiTorrent.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/XMultiTorrent.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/XMultiTorrent.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/XTorrentQueue.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/XTorrentQueue.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/XTorrentQueue.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/__init__.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/__init__.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/atexit_threads.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/atexit_threads.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/atexit_threads.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/bencode.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/bencode.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/bencode.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/bitfield.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/bitfield.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/bitfield.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/btformats.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/btformats.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/btformats.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/configfile.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/configfile.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/configfile.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/defaultargs.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/defaultargs.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/defaultargs.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/defer.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/defer.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/defer.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/hash.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/hash.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/hash.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ipfree.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ipfree.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/ipfree.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/language.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/language.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/language.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/launchmanycore.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/launchmanycore.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/launchmanycore.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/makemetafile.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/makemetafile.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/makemetafile.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/obsoletepythonsupport.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/obsoletepythonsupport.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/obsoletepythonsupport.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/parseargs.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/parseargs.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/parseargs.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/parsedir.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/parsedir.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/parsedir.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/platform.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/platform.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/platform.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/prefs.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/prefs.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/prefs.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/pykill.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/pykill.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/pykill.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/shortargs.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/shortargs.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/shortargs.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/sparse_set.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/sparse_set.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/sparse_set.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/stackthreading.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/stackthreading.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/stackthreading.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/track.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/track.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/track.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/translation.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/translation.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/translation.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/yielddefer.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/yielddefer.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/yielddefer.pyo
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/zurllib.py
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/zurllib.pyc
|
||||
%%PYTHON_SITELIBDIR%%/BitTorrent/zurllib.pyo
|
||||
%%PYTHON_SITELIBDIR%%/Zeroconf.py
|
||||
%%PYTHON_SITELIBDIR%%/Zeroconf.pyc
|
||||
%%PYTHON_SITELIBDIR%%/Zeroconf.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/KRateLimiter.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/KRateLimiter.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/KRateLimiter.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/__init__.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/__init__.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/actions.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/actions.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/actions.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/cache.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/cache.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/cache.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/const.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/const.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/const.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/hammerlock.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/hammerlock.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/hammerlock.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/inserter.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/inserter.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/inserter.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/khash.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/khash.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/khash.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/khashmir.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/khashmir.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/khashmir.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/knet.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/knet.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/knet.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/knode.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/knode.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/knode.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/krpc.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/krpc.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/krpc.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/kstore.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/kstore.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/kstore.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/ktable.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/ktable.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/ktable.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/node.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/node.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/node.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/setup.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/setup.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/setup.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test_khashmir.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test_khashmir.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test_khashmir.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test_krpc.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test_krpc.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test_krpc.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test_kstore.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test_kstore.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/test_kstore.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/unet.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/unet.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/unet.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/util.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/util.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/util.pyo
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/utkhashmir.py
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/utkhashmir.pyc
|
||||
%%PYTHON_SITELIBDIR%%/khashmir/utkhashmir.pyo
|
||||
share/locale/de/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/en/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/es/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/es_MX/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/fr/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/it/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/ja/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/ko/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/pt/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/pt_BR/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/zh_CN/LC_MESSAGES/bittorrent.mo
|
||||
share/locale/zh_TW/LC_MESSAGES/bittorrent.mo
|
||||
%%GUI%%@dirrm share/pixmaps/BitTorrent/themes/default/torrentstate
|
||||
%%GUI%%@dirrm share/pixmaps/BitTorrent/themes/default/torrentops
|
||||
%%GUI%%@dirrm share/pixmaps/BitTorrent/themes/default/statuslight
|
||||
%%GUI%%@dirrm share/pixmaps/BitTorrent/themes/default/fileops
|
||||
%%GUI%%@dirrm share/pixmaps/BitTorrent/themes/default
|
||||
%%GUI%%@dirrm share/pixmaps/BitTorrent/themes
|
||||
%%GUI%%@dirrm share/pixmaps/BitTorrent/logo
|
||||
%%GUI%%@dirrm share/pixmaps/BitTorrent/flags
|
||||
%%GUI%%@dirrm share/pixmaps/BitTorrent
|
||||
@dirrm %%PYTHON_SITELIBDIR%%/khashmir
|
||||
@dirrm %%PYTHON_SITELIBDIR%%/BitTorrent/GUI_wx
|
||||
@dirrm %%PYTHON_SITELIBDIR%%/BitTorrent
|
||||
@dirrmtry %%PYTHON_SITELIBDIR%%
|
||||
@dirrmtry %%PYTHON_LIBDIR%%
|
Loading…
Reference in New Issue
Block a user