mirror of
https://github.com/simon987/nyaa.git
synced 2025-12-13 23:29:02 +00:00
Move bencoded info dicts from mysql torrent_info table to info_dict directory. DB change!
IMPORTANT!!! Make sure to run utils/infodict_mysql2file.py before upgrading the database.
This commit is contained in:
53
utils/infodict_mysql2file.py
Executable file
53
utils/infodict_mysql2file.py
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/python
|
||||
import os
|
||||
import sys
|
||||
|
||||
import MySQLdb
|
||||
import MySQLdb.cursors
|
||||
|
||||
if len(sys.argv) < 3 or len(sys.argv) > 4:
|
||||
print("Usage: {0} <prefix(nyaa|sukebei)> <outdir> [offset]".format(sys.argv[0]))
|
||||
sys.exit(1)
|
||||
|
||||
ofs = 0
|
||||
prefix = sys.argv[1]
|
||||
outdir = sys.argv[2]
|
||||
if not os.path.exists(outdir):
|
||||
os.makedirs(outdir)
|
||||
if len(sys.argv) == 4:
|
||||
ofs = int(sys.argv[3])
|
||||
|
||||
|
||||
db = MySQLdb.connect(host='localhost',
|
||||
user='test',
|
||||
passwd='test123',
|
||||
db='nyaav2',
|
||||
cursorclass=MySQLdb.cursors.SSCursor)
|
||||
cur = db.cursor()
|
||||
|
||||
cur.execute(
|
||||
"""SELECT
|
||||
id,
|
||||
info_hash,
|
||||
info_dict
|
||||
FROM
|
||||
{0}_torrents
|
||||
JOIN {0}_torrents_info ON torrent_id = id
|
||||
LIMIT 18446744073709551610 OFFSET {1}
|
||||
""".format(prefix, ofs))
|
||||
|
||||
for row in cur:
|
||||
id = row[0]
|
||||
info_hash = row[1].hex().lower()
|
||||
info_dict = row[2]
|
||||
|
||||
path = os.path.join(outdir, info_hash[0:2], info_hash[2:4])
|
||||
if not os.path.exists(path):
|
||||
os.makedirs(path)
|
||||
path = os.path.join(path, info_hash)
|
||||
|
||||
with open(path, 'wb') as fp:
|
||||
fp.write(info_dict)
|
||||
|
||||
ofs += 1
|
||||
print(ofs)
|
||||
Reference in New Issue
Block a user