Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie mit Python BT-Seeds und erhalten BT-Seed-Informationen auf der Linux-Plattform

So erstellen Sie mit Python BT-Seeds und erhalten BT-Seed-Informationen auf der Linux-Plattform

高洛峰
高洛峰Original
2017-02-07 16:54:241713Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie Sie Python auf der Linux-Plattform verwenden, um BT-Seeds zu erstellen und BT-Seed-Informationen zu erhalten. Ich möchte es Ihnen als Referenz mitteilen:

Ich habe kürzlich die Einrichtung einer Linux-BT-Serverumgebung untersucht. Ich muss BT-Seeds erstellen und BT-Seed-Informationen unter Linux erhalten. Ich habe den Prozess geklärt:

Erstellen Sie die Download-Adresse dieser Website für BT-Seed-Software.

Installation:

[root@localhost src]# tar zxf mktorrent-1.0.tar.gz
[root@localhost src]# cd mktorrent-1.0
[root@localhost mktorrent-1.0]# make
[root@localhost mktorrent-1.0]# make install
[root@localhost ~]# which mktorrent
/usr/local/bin/mktorrent

Benötigen Sie das Bencode-Modul von Python, um BT-Seed-Informationen zu erhalten, Download-Adresse: https://pypi.python.org/packages/source / b/bencode/bencode-1.0.tar.gz.

Installation:

#tar -zxf bencode-1.0.tar.gz
#cd bencode-1.0.tar.gz
#python setup.py install

Das erstellte und überprüfte Python-Skript lautet wie folgt:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, re, time, sys
import hashlib, bencode
file_name = 'bt_test.exe'
bt_source = '/data/updir/%s' % file_name
bt_name = '/data/source/%s.torrent' % file_name
if os.path.exists(bt_name):
  os.remove(bt_name)
if os.path.exists(bt_source):
  conm = "/usr/local/bin/mktorrent -v -p -l 18 -a http://bt1.text.cn/announce -a http://bt2.text.cn/announce -o %s %s" % (bt_name,bt_source)
  res = os.popen(conm).readlines()[-1].strip()
  if 'done' in res:
    bt_path = {}
    bt_file = open(bt_name, 'rb')
    bt_info = bencode.bdecode(bt_file.read()).get('info')
    bt_info_hash_hex = hashlib.sha1(bencode.bencode(bt_info)).hexdigest()
    if os.path.isdir(bt_source):
      bt_file_size = 0
      for length in bt_info.get('files'):
        bt_file_size = bt_file_size + int(length['length'])
        bt_path['/'.join(length['path'])] = length['length']
    else:
      bt_file_size = bt_info.get('length')
      bt_file_name = bt_info.get('name')
      bt_path[bt_file_name]=bt_file_size
    bt_file.close()
    print bt_path
    print "Create torrent success"
  else:
    print "Create torrent Error"
    sys.exit()
else:
  print "This source not find"
  sys.exit()

Dateiname ist der Name der Datei oder des Verzeichnisses, die für das Seeding verwendet wird.

Ich hoffe, dass dieser Artikel für alle in der Python-Programmierung hilfreich sein wird.

Weitere Artikel zur Verwendung von Python zum Erstellen von BT-Seeds und zum Erhalten von BT-Seed-Informationen auf der Linux-Plattform finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn