Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from xmlrpclib import ServerProxy, Error
- import argparse
- import urllib2
- import struct
- import os
- opensub_domain = "http://api.opensubtitles.org/xml-rpc"
- default_useragent = "OS Test User Agent"
- server = ServerProxy(opensub_domain)
- def get_hash(name):
- try:
- longlongformat = 'q' # long long
- bytesize = struct.calcsize(longlongformat)
- f = open(name, "rb")
- filesize = os.path.getsize(name)
- hash = filesize
- if filesize < 65536 * 2:
- return "SizeError"
- for x in range(65536 / bytesize):
- buffer = f.read(bytesize)
- (l_value,) = struct.unpack(longlongformat, buffer)
- hash += l_value
- hash = hash & 0xFFFFFFFFFFFFFFFF # to remain as 64bit number
- f.seek(max(0, filesize - 65536), 0)
- for x in range(65536 / bytesize):
- buffer = f.read(bytesize)
- (l_value,) = struct.unpack(longlongformat, buffer)
- hash += l_value
- hash = hash & 0xFFFFFFFFFFFFFFFF
- f.close()
- returnedhash = "%016x" % hash
- return returnedhash
- except(IOError):
- return None
- if __name__ == '__main__':
- parser = argparse.ArgumentParser()
- parser.add_argument("file", type=str,
- help="input video file")
- args = parser.parse_args()
- #args.file
- current_hash = get_hash(args.file)
- current_size = os.path.getsize(args.file)
- session = server.LogIn("", "", "en", default_useragent)
- token = session["token"]
- searchlist = []
- searchlist.append({'moviehash': current_hash, 'moviebytesize': str(current_size)})
- moviesList = server.SearchSubtitles(token, searchlist)
- if moviesList['data']:
- data = moviesList['data']
- print data[0]['MovieName']
- else:
- print 'no info'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement