Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

TVSUBS.NET Subtitle Downloader

# -*- coding: utf-8 -*-
import zipfile,os,subprocess,io,re
from pymsgbox import alert
from bs4 import BeautifulSoup
import requests
import webbrowser
import traceback

base='http://tvsubs.net/'
b=r'sub.srt'

bv='ISO-8859 text, with CRLF line terminators'
# bv2='C source, ISO-8859 text, with CRLF line terminators'

aos ='1560'
got ='810'
geni ='2503'
sg='1801'
flash='1706'
mi='2632'
st=2266
ar='1294' #arrow
dlot='1930' #dc legends of 2mrw

url2=st #Stranger things
c=0
old=1 # old sys
cs=1 #start from
season=1 # full
ssno=1

def correctSubtitleEncoding(a):

content=''
batcmd=('file "{}"'.format(a))
result = subprocess.check_output(batcmd, shell=True)
result=result.decode().split(':')[-1].strip()
if (result) in (bv,):
print('cool')
return

if 1:
with io.open(a, mode="r",encoding="utf-8" ) as fd:
try:
content = fd.read()
except Exception as e:
print(e,)
print(a,)
s=int(str(e).split(':')[0].split()[-1])
traceback.print_exc()
exit()
pass
with io.open(b, mode="r",encoding="cp1252" ) as fd:
c2 = fd.read()
pass
for i in ('\ufeff','\U0001f3f9','\u202d'):
content=content.replace(i,'')
for i,j in (('♪','`'),('\x80','Euro')):
content=content.replace(i,j)
with io.open(a, mode="w", encoding="cp1252") as fd:
try:
fd.write(content)
fd.write(c2)
pass
except Exception as e:
s=int(str(e).split(':')[0].split()[-1])
print(content[:s])
print(e)

def down(a):
response = requests.get(a, stream=True)
x="10MB0.zip"
with open(x, "wb") as handle:
for data in (response.iter_content()):
handle.write(data)

with zipfile.ZipFile(x,"r") as zip_ref:
v=(zip_ref.namelist())[0]
zip_ref.extractall('d')
correctSubtitleEncoding('d\\'+v)
os.remove(x)
def a():
url='tvshow-{}-{}.html'.format(url2,ssno)
r=requests.get(base+url)
soup=BeautifulSoup(r.content,'html.parser')
global c
for link in soup.find_all('a'):
z=link.get('href')
if z and z.startswith('episode') and link.text:
c+=1
if (season and c>=cs) or c==cs:
zz=(base+z.replace('.html','-en.html'))
r2=requests.get(zz)
soup2=BeautifulSoup(r2.content,'html.parser')
a=soup2.find_all('div',class_='column-2')
lt={}
rb=[]
for aa in a[0].find_all('li'):
zz=aa.find_all('a')[5]
zzt=zz.text
rb+=[zzt]
rbc=rb.count(zzt)
zzt=zzt.replace(' ','.').replace('.+.',' + ')+'.en'
zzt=zzt.replace('All.HDTV','All HDTV')
zzt=zzt.replace('hearing.impaired','hearing impaired')
zzt=zzt.replace('crazy.idiot','crazy idiot')
# print(zzt)
zzt=re.sub(r'(HDTV\.)(\d\d)\.([A-z]+)\.(\d{4}.*)',r'\1\2 \3 \4',zzt)
# print(zzt)
zzt=re.sub(r'(HDTV\.)(\d\d)\.([A-z]+)',r'\1\2 \3',zzt)
if old:rbc-=1
if rbc>1:zzt+='_{}'.format(rbc)
zzt+='.zip'
lt[int(aa.find_all('span')[1].text)]=zz.get('href'),zzt
if not lt:break
rubs=(base+'files/'+lt[max(lt)][1]).replace("'",'')
rubs=rubs.replace('..','.')
print(rubs);
# continue
print(c)
down(rubs)

if not season:break



if __name__ == '__main__':
try:
a()
alert('Boss done')
except Exception as e:print(e);alert('error')


This post first appeared on SMARTMANOJ, please read the originial post: here

Share the post

TVSUBS.NET Subtitle Downloader

×

Subscribe to Smartmanoj

Get updates delivered right to your inbox!

Thank you for your subscription

×