Compare commits

...

12 Commits

Author SHA1 Message Date
2004content
2a0e4dec9e Update README.txt 2023-06-07 17:21:27 -04:00
2004content
f41ac2de51 Update README.txt 2023-06-07 17:19:47 -04:00
2004content
e0cb558115 Delete clean.py 2023-06-07 17:15:50 -04:00
2004content
33c13ffca0 Delete showsrarbg.txt 2023-06-07 17:15:30 -04:00
2004content
fb7b859c11 Delete showsother.txt 2023-06-07 17:15:18 -04:00
2004content
b1f1be11af Delete moviesrarbg.txt 2023-06-07 17:15:06 -04:00
2004content
57e63827e5 Delete blank 2023-06-07 17:14:31 -04:00
2004content
626bd84982 Add files via upload 2023-06-07 17:13:57 -04:00
2004content
b279ba7e1c Delete blank 2023-06-07 17:08:57 -04:00
2004content
fd80f28741 Add files via upload 2023-06-07 17:08:23 -04:00
2004content
9fb8b02f93 Create blank 2023-06-07 17:05:49 -04:00
2004content
69fda92a7b Create blank 2023-06-07 17:05:04 -04:00
17 changed files with 172687 additions and 100990 deletions

View File

@@ -1,22 +1,14 @@
rarbg
Backup of magnets from RARBG
Currently:
clean.py is my Python script for cleaning up magnets post-extraction. I think it might have some finnicky thing going on with the way it fixes two magnets in one line, but it works.
moviesrarbg.txt holds my original post, cleaned up a lot. (117,392)
showsother.txt holds my original post, cleaned up a little. (137,671)
showsrarbg.txt holds my original post, cleaned up a lot. (11,699)
everything.7z holds everything that i've compiled (3,468,029)
everything.7z holds everything that i compiled (3,468,029)
xrmb.7z holds all of xrmb's rarbg magnets (2,843,291)
sorted holds nicely categorized and useful magnets for shows and movies
--- everything.7z is complete ---
Some of the stuff in everything.7z did not come from RARBG, but I just left it all. Xrmb's database is all from RARBG.
(and it would take a large new backup find to convince me otherwise)
(and convince me to update it)
This repository was mentioned on TorrentFreak -
https://torrentfreak.com/rarbg-over-267000-movie-tv-show-magnet-links-appear-online-230601/
Some of the stuff in everything.7z did not come from RARBG, and that is my next step. I'm accepting suggestions for how to filter those. My current best idea is to write something to look for commonly formatted titles, like TITLE.YEAR.RESOLUTION.SOURCE.ENCODING-GROUP, but I'll need input on what porn/music/games titles usually looked like on RARBG, I'm not familiar with them.
I'll filter everything.7z and split it into its relevant categories. For example, the one I'm most excited for is a .txt file dedicated to solely 1080p BluRay x265 -RARBG movies.
Thanks guys.
This repository was mentioned on TorrentFreak - https://torrentfreak.com/rarbg-over-267000-movie-tv-show-magnet-links-appear-online-230601/
Much more info about this project can be found on Reddit - https://www.reddit.com/r/Piracy/comments/13wn554/my_rarbg_magnet_backup_268k/
More info about this project can be found on Reddit -
https://www.reddit.com/r/Piracy/comments/13wn554/my_rarbg_magnet_backup_268k/

View File

@@ -1,70 +0,0 @@
def fix(line, data):
try:
hash = line[20:[pos for pos, char in enumerate(line) if char == '&'][0]].lower()#hash is end of prefix to first '&', lowercased
except:#if no '&dn='
hash = line[20:]
line = line + '&dn='
try:
int(hash, 16)#check if hash is hexadecimal
except:
return
if line.count('&') > 1:#look for trackers
location = 0
tocheck = []
while location < len(line):#find all occurences of '&'
location = line.find('&', location)
if location == -1:
break
tocheck.append(location)
location += 1
for index in tocheck:#iterate through occurences of '&'
try:
if (line[index + 1] == 't') and (line[index + 2] == 'r') and (line[index + 3] == '='):#if occurence is part of a tracker then ignore
pass
else:#if not, it's part of the title so replace it
line = line[:index] + line[index + 1:]
except IndexError:
line = line[:index] + line[index + 1:]
if line.count('&') > 1:#if it actually has only trackers now
title = line[[pos for pos, char in enumerate(line) if char == '='][1] + 1:[pos for pos, char in enumerate(line) if char == '&'][1]]#title is second '=' to second '&'
else:
title = line[[pos for pos, char in enumerate(line) if char == '='][1] + 1:]#title is second '=' to end if no trackers
else:
title = line[[pos for pos, char in enumerate(line) if char == '='][1] + 1:]#title is second '=' to end if no trackers
title = ''.join(char for char in title if ord(char) < 128)#strip non-ascii characters
linesplit = ['magnet:?xt=urn:btih:', hash, '&dn=', title]
data.append(linesplit)
return data
data = []#lists within list
with open('everything.txt', encoding='utf-8') as file:#open file
for line in file:
line = line.strip()
if line.startswith('magnet:?xt=urn:btih:'):#check for validity
if 'magnet:?xt=urn:btih:' in line[20:]:#check for paste errors on my part
secondline = line[line.find('magnet:?xt=urn:btih:', 20):]#the second magnet link in this line
line = line[:line.find('magnet:?xt=urn:btih:', 20)]#the first magnet link in this line
data = fix(secondline, data)#go ahead and add the second to data
if 'magnetxturnbtih' in line[20:]:#paste errors that got symbols removed (and 'd' after the first '&', for some reason)
hash = line[line.find('magnetxturnbtih', 20) + 15:line.find('n', line.find('magnetxturnbtih', 20) + 15)]#pull just the hash of the second magnet, which stretches from the end of the magnet prefix to the first occurrence of 'n' past the prefix
title = line[line.find('n', line.find('magnetxturnbtih', 20) + 15) + 1:]#title stretches from that 'n' to the end (any trackers will be stripped out later)
secondline = 'magnet:?xt=urn:btih:' + hash + '&dn=' + title#put it back together
line = line[:line.find('magnetxturnbtih', 20)]
data = fix(secondline, data)
data = fix(line, data)#add split line to data
for magnet in data:
for character in ['`', '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '[', '{', ']', '}', '\\', '|', ';', ':', '\'', '\"', ',', '<', '>', '?', '/']:
magnet[3] = magnet[3].replace(character, '')#get rid of symbols except '.' and '-'
magnet[3] = magnet[3].replace(' ', '.')#replace spaces
dic = {}#dictionary to eliminate duplicate hashes
for i in sorted(data, key=lambda x: x[3]):#sorted data because it lets me replace null titles because the last duplicate keeps the title and nulls are listed first in sort
dic[i[0] + i[1]] = i[2] + i[3]
results = []
for value in sorted(dic, key=dic.get):#sort dictionary
results.append('{}{}'.format(value, dic[value]))
with open('output.txt', 'a', encoding='utf-8') as output:
for i in results:
output.write(i + '\n')

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

54143
sorted/-rarbg.720p.movies.txt Normal file

File diff suppressed because it is too large Load Diff

1627
sorted/-rarbg.720p.shows.txt Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

12295
sorted/2160p.movies.txt Normal file

File diff suppressed because it is too large Load Diff

11734
sorted/2160p.shows.txt Normal file

File diff suppressed because it is too large Load Diff

BIN
xrmb/xrmb.7z.001 Normal file

Binary file not shown.

BIN
xrmb/xrmb.7z.002 Normal file

Binary file not shown.

BIN
xrmb/xrmb.7z.003 Normal file

Binary file not shown.

Binary file not shown.