def search_subtitles( file_original_path, title, tvshow, year, season, episode, set_temp, rar, lang1, lang2, lang3 ): #standard input
       
    ok = False
    msg = ""
    hash_search = False
    osdb_server = OSDBServer()
    osdb_server.create()    
    subtitles_list = []
    file_size = ""
    hashTry = ""
    language1 = twotoone(toOpenSubtitles_two(lang1))
    language2 = twotoone(toOpenSubtitles_two(lang2))
    language3 = twotoone(toOpenSubtitles_two(lang3))  
    if set_temp : 
      hash_search = False      
    else:
      try:
        hashTry = timeout(set_filehash, args=(file_original_path, rar), timeout_duration=5)
        file_size = os.path.getsize( file_original_path )
        hash_search = True
      except: 
        hash_search = False 
    
    if file_size != "": log( __name__ ,"File Size [%s]" % file_size )
    if hashTry != "":   log( __name__ ,"File Hash [%s]" % hashTry)
    if hash_search :
      log( __name__ ,"Search for [%s] by hash" % (os.path.basename( file_original_path ),))
      subtitles_list, session_id = osdb_server.searchsubtitles_pod( hashTry ,language1, language2, language3)
    if not subtitles_list:
      log( __name__ ,"Search for [%s] by name" % (os.path.basename( file_original_path ),))
      subtitles_list = osdb_server.searchsubtitlesbyname_pod( title, tvshow, season, episode, language1, language2, language3, year )
    return subtitles_list, "", "" #standard output
def search_subtitles( file_original_path, title, tvshow, year, season, episode, set_temp, rar, lang1, lang2, lang3, stack ): #standard input     
  ok = False
  msg = ""
  osdb_server = OSDBServer()
  osdb_server.create()    
  subtitles_list = []
  file_size = ""
  hashTry = ""
  language1 = languageTranslate(lang1,0,1)
  language2 = languageTranslate(lang2,0,1)
  language3 = languageTranslate(lang3,0,1)  
  if set_temp : 
    hash_search = False
    file_size   = "000000000"
    SubHash     = "000000000000"
  else:
    try:
      file_size, SubHash   = xbmc.subHashAndFileSize(file_original_path)
      log( __name__ ,"xbmc module hash and size")
      hash_search = True
    except:  
      file_size   = ""
      SubHash     = ""
      hash_search = False
  
  if file_size != "" and SubHash != "":
    log( __name__ ,"File Size [%s]" % file_size )
    log( __name__ ,"File Hash [%s]" % SubHash)
  if hash_search :
    log( __name__ ,"Search for [%s] by hash" % (os.path.basename( file_original_path ),))
    subtitles_list, session_id = osdb_server.searchsubtitles_pod( SubHash ,language1, language2, language3, stack)
  if not subtitles_list:
    log( __name__ ,"Search for [%s] by name" % (os.path.basename( file_original_path ),))
    subtitles_list = osdb_server.searchsubtitlesbyname_pod( title, tvshow, season, episode, language1, language2, language3, year, stack )
  return subtitles_list, "", "" #standard output
def download_subtitles(subtitles_list, pos, zip_subs, tmp_sub_dir, sub_folder,
                       session_id):  #standard input
    osdb_server = OSDBServer()
    url = osdb_server.download(session_id, subtitles_list[pos]["link"])
    if url != None:
        local_file = open(zip_subs, "w" + "b")
        f = urllib.urlopen(url)
        local_file.write(f.read())
        local_file.close()

    language = subtitles_list[pos]["language_name"]
    return True, language, ""  #standard output
def download_subtitles (subtitles_list, pos, zip_subs, tmp_sub_dir, sub_folder, session_id): #standard input
  osdb_server = OSDBServer()
  url = osdb_server.download(session_id, subtitles_list[pos][ "link" ])
  if url != None:
    local_file = open(zip_subs, "w" + "b")
    f = urllib.urlopen(url)
    local_file.write(f.read())
    local_file.close()
  
  language = subtitles_list[pos][ "language_name" ]
  return True,language, "" #standard output
    
def search_subtitles(file_original_path, title, tvshow, year, season, episode,
                     set_temp, rar, lang1, lang2, lang3,
                     stack):  #standard input
    ok = False
    msg = ""
    osdb_server = OSDBServer()
    osdb_server.create()
    subtitles_list = []
    file_size = ""
    hashTry = ""
    language1 = twotoone(toOpenSubtitles_two(lang1))
    language2 = twotoone(toOpenSubtitles_two(lang2))
    language3 = twotoone(toOpenSubtitles_two(lang3))
    if set_temp:
        hash_search = False
    else:
        try:
            try:
                file_size, hashTry = xbmc.subHashAndFileSize(
                    file_original_path)
                log(__name__, "xbmc module hash and size")
            except:
                hashTry = timeout(set_filehash,
                                  args=(file_original_path, rar),
                                  timeout_duration=5)
                file_size = str(os.path.getsize(file_original_path))
            hash_search = True
        except:
            hash_search = False

    if file_size != "": log(__name__, "File Size [%s]" % file_size)
    if hashTry != "": log(__name__, "File Hash [%s]" % hashTry)
    if hash_search:
        log(
            __name__, "Search for [%s] by hash" %
            (os.path.basename(file_original_path), ))
        subtitles_list, session_id = osdb_server.searchsubtitles_pod(
            hashTry, language1, language2, language3, stack)
    if not subtitles_list:
        log(
            __name__, "Search for [%s] by name" %
            (os.path.basename(file_original_path), ))
        subtitles_list = osdb_server.searchsubtitlesbyname_pod(
            title, tvshow, season, episode, language1, language2, language3,
            year, stack)
    return subtitles_list, "", ""  #standard output