שוחררה גרסת 12.0-Frodo של XBMC.
- nirhazir
-
- חבר פעיל מאוד

- תגובות: 324
- הצטרף: מרץ 2012
צריך להגדיר פונט ARIAL.
- itaysp
-
- חבר פעיל מאוד

- תגובות: 342
- הצטרף: מאי 2007
גם אצלי SUBCENTER תוקע לכמה דקות, אבל אז זה משתחרר עם שגיאה..
- omer15
-
- חבר פעיל

- תגובות: 91
- הצטרף: אפריל 2006
תודה רבה!meathook כתב:לפני שבוע תיקנתי את התוסף כך שיעבוד גם עם subtitle.co.il וגם עם subscenter.omer15 כתב:מעולה!!!!
מתי תוסף הכתוביות יעודכן לגרסה 12? אני מרגיש שחזרתי שנה אחורה בזמן ללא התוסף הנל......
כמו כן תיקנתי גם את הscraper של סרטים כך שיתחשב גם בשנת הסרט ובסדר התוצאות הרלוונטי מאתר סרטים.
אני מקווה שהתיקונים שלי נכנסו לגרסה האחרונה....
מאיפה ניתן להוריד את הגרסה האחרונה?
- omer15
-
- חבר פעיל

- תגובות: 91
- הצטרף: אפריל 2006
אני עובד עם פרודו וגרסה 1.06 של HEBREW SUBTITLE וכל פעם שאני רוצה להפעיל את התוסף הוא רושם לי "סקריפט נכשל"
- rabak
-
- חבר פעיל במיוחד

- תגובות: 565
- הצטרף: דצמבר 2010
קודם כל תודה רבה על העדכוניםmeathook כתב:לפני שבוע תיקנתי את התוסף כך שיעבוד גם עם subtitle.co.il וגם עם subscenter.omer15 כתב:מעולה!!!!
מתי תוסף הכתוביות יעודכן לגרסה 12? אני מרגיש שחזרתי שנה אחורה בזמן ללא התוסף הנל......
כמו כן תיקנתי גם את הscraper של סרטים כך שיתחשב גם בשנת הסרט ובסדר התוצאות הרלוונטי מאתר סרטים.
אני מקווה שהתיקונים שלי נכנסו לגרסה האחרונה....
דבר 2 באמת subscenter גורם ךתקיעה מלאה של ה XBMC וצריך לסגור אותו ישר אחרי שמנסים להריץ חיפוש תרגום באתר
תקן אותי אם אני טועה אבל הגירסה הקודמת עבדה בסדר... לפחות מה שאצלי
קוד: בחירת הכל
# -*- coding: UTF-8 -*-
#===============================================================================
# Subscenter.org subtitles service.
# Version: 1.4
#
# Change log:
# 1.1 - Fixed downloading of non-Hebrew subtitles.
# 1.2 - Added key field for download URL
# 1.3 - Fixed null values in website dictionary (changed to None)
# 1.4 - Fixed key field (Thanks ILRHAES)
#
# Created by: Ori Varon
#===============================================================================
import os, re, xbmc, xbmcgui, string, time, urllib2
from utilities import languageTranslate, log
BASE_URL = "http://www.subscenter.org"
debug_pretext = ""
#===============================================================================
# Regular expression patterns
#===============================================================================
MULTI_RESULTS_PAGE_PATTERN = u"עמוד (?P<curr_page>\d*) \( סך הכל: (?P<total_pages>\d*) \)"
SEARCH_RESULTS_PATTERN = "<div class="generalWindowRight">.*?<a href="(?P<sid>.*?)">"
#===============================================================================
# Private utility functions
#===============================================================================
# Returns the content of the given URL. Used for both html and subtitle files.
# Based on Titlovi's service.py
def getURL(url):
# Fix URLs with spaces in them
url = url.replace(" ","%20")
content = None
log( __name__ ,"Getting url: %s" % (url))
try:
response = urllib2.urlopen(url)
content = response.read()
except:
log( __name__ ,"Failed to get url: %s" % (url))
# Second parameter is the filename
return content
def getURLfilename(url):
# Fix URLs with spaces in them
url = url.replace(" ","%20")
filename = None
log( __name__ ,"Getting url: %s" % (url))
try:
response = urllib2.urlopen(url)
filename = response.headers['Content-Disposition']
filename = filename[filename.index("filename="):]
except:
log( __name__ ,"Failed to get url: %s" % (url))
# Second parameter is the filename
return filename
# The function receives a subtitles page id number, a list of user selected
# languages and the current subtitles list and adds all found subtitles matching
# the language selection to the subtitles list.
def getAllSubtitles(subtitlePageID,languageList,subtitlesList):
# Retrieve the subtitles page (html)
try:
subtitlePage = getURL(BASE_URL + subtitlePageID)
except:
# Didn't find the page - no such episode?
return
# Didn't find the page - no such episode?
if (not subtitlePage):
return
# Find subtitles dictionary declaration on page
tempStart = subtitlePage.index("subtitles_groups = ")
# Look for the following line break
tempEnd = subtitlePage.index("\n",subtitlePage.index("subtitles_groups = "))
toExec = "foundSubtitles = "+subtitlePage[tempStart+len("subtitles_groups = "):tempEnd]
# Remove junk at the end of the line
toExec = toExec[:toExec.rfind("}")+1]
# replace "null" with "None"
toExec = toExec.replace("null","None")
exec(toExec)
log( __name__ ,"Built webpage dictionary")
for language in foundSubtitles.keys():
if (languageTranslate(language, 2, 0) in languageList):
for translator in foundSubtitles[language]:
for quality in foundSubtitles[language][translator]:
for rating in foundSubtitles[language][translator][quality]:
subtitlesList.append({'rating': rating, 'sync': False,
'filename': foundSubtitles[language][translator][quality][rating]["subtitle_version"],
'subtitle_id': foundSubtitles[language][translator][quality][rating]["id"],
'language_flag': 'flags/' + language + '.gif',
'language_name': languageTranslate(language, 2, 0),
'key': foundSubtitles[language][translator][quality][rating]["key"]})
# Extracts the downloaded file and find a new sub/srt file to return.
# Note that Sratim.co.il currently isn't hosting subtitles in .txt format but
# is adding txt info files in their zips, hence not looking for txt.
# Based on Titlovi's service.py
def extractAndFindSub(tempSubDir,tempZipFile):
# Remember the files currently in the folder and their number
files = os.listdir(tempSubDir)
init_filecount = len(files)
filecount = init_filecount
max_mtime = 0
# Determine which is the newest subtitles file in tempSubDir
for file in files:
if (string.split(file,'.')[-1] in ['srt','sub']):
mtime = os.stat(os.path.join(tempSubDir, file)).st_mtime
if mtime > max_mtime:
max_mtime = mtime
init_max_mtime = max_mtime
# Wait 2 seconds so that the unpacked files are at least 1 second newer
time.sleep(2)
# Use XBMC's built-in extractor
xbmc.executebuiltin("XBMC.Extract(" + tempZipFile + "," + tempSubDir +")")
waittime = 0
while ((filecount == init_filecount) and (waittime < 20) and
(init_max_mtime == max_mtime)): # Nothing extracted yet
# Wait 1 second to let the builtin function 'XBMC.extract' unpack
time.sleep(1)
files = os.listdir(tempSubDir)
filecount = len(files)
# Determine if there is a newer file created in tempSubDir
# (indicates that the extraction had completed)
for file in files:
if (string.split(file,'.')[-1] in ['srt','sub']):
mtime = os.stat(os.path.join(tempSubDir, file)).st_mtime
if (mtime > max_mtime):
max_mtime = mtime
waittime = waittime + 1
if waittime == 20:
log( __name__ ,"Failed to unpack subtitles in '%s'" % (tempSubDir))
return ""
else:
log( __name__ ,"Unpacked files in '%s'" % (tempSubDir))
for file in files:
# There could be more subtitle files in tempSubDir, so make sure we
# get the newest subtitle file
if ((string.split(file, '.')[-1] in ['srt', 'sub']) and
(os.stat(os.path.join(tempSubDir, file)).st_mtime >
init_max_mtime)):
log( __name__ ,"Unpacked subtitles file '%s'" % (file))
return os.path.join(tempSubDir, file)
#===============================================================================
# Public interface functions
#===============================================================================
# This function is called when the service is selected through the subtitles
# addon OSD.
# file_original_path -> Original system path of the file playing
# title -> Title of the movie or episode name
# tvshow -> Name of a tv show. Empty if video isn't a tv show (as are season and
# episode)
# year -> Year
# season -> Season number
# episode -> Episode number
# set_temp -> True iff video is http:// stream
# rar -> True iff video is inside a rar archive
# lang1, lang2, lang3 -> Languages selected by the user
def search_subtitles( file_original_path, title, tvshow, year, season, episode, set_temp, rar, lang1, lang2, lang3, stack ): #standard input
subtitlesList = []
# List of user languages - easier to manipulate
languageList = [lang1, lang2, lang3]
msg = ""
# Check if tvshow and replace spaces with + in either case
if tvshow:
searchString = tvshow.replace(" ","+")
else:
searchString = title.replace(" ","+")
log( __name__ ,"%s Search string = %s" % (debug_pretext, searchString.lower()))
# Retrieve the search results (html)
searchResults = getURL(BASE_URL + "/he/subtitle/search/?q=" + searchString.lower())
# Search most likely timed out, no results
if (not searchResults):
return subtitlesList, "", "Search timed out, please try again later."
# Look for subtitles page links
subtitleIDs = re.findall(SEARCH_RESULTS_PATTERN,searchResults,re.DOTALL)
# Look for more subtitle pages
pages = re.search(MULTI_RESULTS_PAGE_PATTERN,unicode(searchResults,"utf-8"))
# If we found them look inside for subtitles page links
if (pages):
while (not (int(pages.group("curr_page"))) == int(pages.group("total_pages"))):
searchResults = getURL(BASE_URL + "/he/subtitle/search/?q="+searchString.lower()+"&page="+str(int(pages.group("curr_page"))+1))
tempSIDs = re.findall(SEARCH_RESULTS_PATTERN,searchResults,re.DOTALL)
for sid in tempSIDs:
subtitleIDs.append(sid)
pages = re.search(MULTI_RESULTS_PAGE_PATTERN,unicode(searchResults,"utf-8"))
# Uniqify the list
subtitleIDs=list(set(subtitleIDs))
# If looking for tvshos try to append season and episode to url
if tvshow:
for i in range(len(subtitleIDs)):
subtitleIDs[i] += "/"+season+"/"+episode+"/"
for sid in subtitleIDs:
getAllSubtitles(sid,languageList,subtitlesList)
# Standard output -
# subtitles list (list of tuples built in getAllSubtitles),
# session id (e.g a cookie string, passed on to download_subtitles),
# message to print back to the user
return subtitlesList, "", msg
# This function is called when a specific subtitle from the list generated by
# search_subtitles() is selected in the subtitles addon OSD.
# subtitles_list -> Same list returned in search function
# pos -> The selected item's number in subtitles_list
# zip_subs -> Full path of zipsubs.zip located in tmp location, if automatic
# extraction is used (see return values for details)
# tmp_sub_dir -> Temp folder used for both automatic and manual extraction
# sub_folder -> Folder where the sub will be saved
# session_id -> Same session_id returned in search function
def download_subtitles (subtitles_list, pos, zip_subs, tmp_sub_dir, sub_folder, session_id): #standard input
subtitle_id = subtitles_list[pos][ "subtitle_id" ]
filename = subtitles_list[pos][ "filename" ]
key = subtitles_list[pos][ "key" ]
url = BASE_URL + "/subtitle/download/"+languageTranslate(subtitles_list[pos][ "language_name" ], 0, 2)+"/"+str(subtitle_id)+"/?v="+filename+"&key="+key
log( __name__ ,"%s Fetching subtitles using url %s" % (debug_pretext, url))
# Get the intended filename (don't know if it's zip or rar)
archive_name = getURLfilename(url)
# Get the file content using geturl()
content = getURL(url)
subs_file = ""
if content:
local_tmp_file = os.path.join(tmp_sub_dir, archive_name)
log( __name__ ,"%s Saving subtitles to '%s'" % (debug_pretext, local_tmp_file))
try:
local_file_handle = open(local_tmp_file, "wb")
local_file_handle.write(content)
local_file_handle.close()
except:
log( __name__ ,"%s Failed to save subtitles to '%s'" % (debug_pretext, local_tmp_file))
# Extract the zip file and find the new sub/srt file
subs_file = extractAndFindSub(tmp_sub_dir,local_tmp_file)
# Standard output -
# True iff the file is packed as zip: addon will automatically unpack it.
# language of subtitles,
# Name of subtitles file if not packed (or if we unpacked it ourselves)
return False, subtitles_list[pos][ "language_name" ], subs_file
אצלי הוא עדיין עובד מצוין
- omerdo
-
- חבר פעיל

- תגובות: 96
- הצטרף: אפריל 2012
איך נקראה ה ADD-ON המדובר?tomer953 כתב:אין ניטור.staticx כתב: ואיך לנטר את התיקיה של הוידאו באופן שוטף (לא בצורה של סריקה כל X שעות)
במדיה פורטל למשל ,ברגע שהייתי שם קובץ וידאו בתיקיה , ישר התוכנה כבר הייתה מזהה ומוסיפה אותו לסרטים/סדרות.
ב XBMC זה לא ככה ואם אני שם קובץ חדש ורוצה לראות עכשיו, הדרך היחידה להגיע היא דרך הסייר של הקבצים בתוכנה.
אשמח לפיתרון.. זה בעיקר מה שמפריע והורס את השימוש בתוכנה......
יש סריקה בהפעלת התוכנה.
יש סריקה ידנית,
ויש סריקה ע"י ADD-ON שמופעל ע"י מתזמן (כלומר כל יום X בשעה X תבצע סריקה וכו')....
- amirdavid
-
- חבר פעיל מאוד

- תגובות: 120
- הצטרף: אוגוסט 2007
חברים,
אין לי עברית בתפריטים של FRODO.
אבל כתוביות עברית עובד 100 אחוז.
מה יכולה להיות הבעיה?
אין לי עברית בתפריטים של FRODO.
אבל כתוביות עברית עובד 100 אחוז.
מה יכולה להיות הבעיה?
- embedded
-
- חבר ותיק

- תגובות: 2030
- הצטרף: דצמבר 2008
שווה לעבור ל12?
או שכדאי לחכות עד יעבור זעם?
או שכדאי לחכות עד יעבור זעם?