The branch, eden-pre has been updated
       via  82edc34673145d26bed89a336f8435621892c02b (commit)
      from  cea99833af0aa1cd7d1f4a7684f1ab283654366d (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=82edc34673145d26bed89a336f8435621892c02b

commit 82edc34673145d26bed89a336f8435621892c02b
Author: amet <[email protected]>
Date:   Thu Jan 19 21:36:13 2012 +0400

    [script.web.viewer] -v 0.8.2
    
    Encode log entries
    Remove xbmcgui.lock()/xbmcgui.unlock() to get rid of the annoying xbmc.log 
messages :)
    Fixed bug with viewing images
    Fixed a bug causing webviewer to lock on nonsense urls
    Fixed bug with link list failing to display link images with relative URLs
    Fixed a bug with improperly identifying links URLs with imbedded image URLs 
as being links to images
    Improved message/error logging
    Added fanart.jpg:   (anyone wants to make something better, feel free =] )
      Made with some free images - attribution:
        Image: Danilo Rizzuti / FreeDigitalPhotos.net
        Image: suphakit73 / FreeDigitalPhotos.net

diff --git a/script.web.viewer/addon.xml b/script.web.viewer/addon.xml
index 39fdb7c..d1aaab3 100644
--- a/script.web.viewer/addon.xml
+++ b/script.web.viewer/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="script.web.viewer"
        name="Web Viewer"
-       version="0.8.1"
+       version="0.8.2"
        provider-name="Rick Phillips (ruuk)">
   <requires>
     <import addon="xbmc.python" version="2.0"/>
diff --git a/script.web.viewer/changelog.txt b/script.web.viewer/changelog.txt
index 37f43a7..fa2f946 100644
--- a/script.web.viewer/changelog.txt
+++ b/script.web.viewer/changelog.txt
@@ -1,6 +1,20 @@
 Web Viewer Changelog
 
-Current Version : 0.8.1
+Current Version : 0.8.2
+
+*** 0.8.2 ***
+
+Encode log entries
+Remove xbmcgui.lock()/xbmcgui.unlock() to get rid of the annoying xbmc.log 
messages :)
+Fixed bug with viewing images
+Fixed a bug causing webviewer to lock on nonsense urls
+Fixed bug with link list failing to display link images with relative URLs
+Fixed a bug with improperly identifying links URLs with imbedded image URLs as 
being links to images
+Improved message/error logging
+Added fanart.jpg:   (anyone wants to make something better, feel free =] )
+  Made with some free images - attribution: 
+    Image: Danilo Rizzuti / FreeDigitalPhotos.net
+    Image: suphakit73 / FreeDigitalPhotos.net
 
 *** 0.8.1 ***
 
diff --git a/script.web.viewer/lib/webviewer/webviewer.py 
b/script.web.viewer/lib/webviewer/webviewer.py
index 901a954..7bd21f6 100644
--- a/script.web.viewer/lib/webviewer/webviewer.py
+++ b/script.web.viewer/lib/webviewer/webviewer.py
@@ -8,8 +8,8 @@ import mechanize, threading
 __plugin__ = 'Web Viewer'
 __author__ = 'ruuk (Rick Phillips)'
 __url__ = 'http://code.google.com/p/webviewer-xbmc/'
-__date__ = '12-27-2011'
-__version__ = '0.8.1'
+__date__ = '01-19-2011'
+__version__ = '0.8.2'
 __addon__ = xbmcaddon.Addon(id='script.web.viewer')
 __language__ = __addon__.getLocalizedString
 
@@ -40,13 +40,21 @@ ACTION_CONTEXT_MENU = 117
 #Actually it's show codec info but I'm using in a threaded callback
 ACTION_RUN_IN_MAIN = 27
 
+import locale
+loc = locale.getdefaultlocale()
+print loc
+ENCODING = loc[1] or 'utf-8'
+
+def ENCODE(string):
+       return string.encode(ENCODING,'replace')
+
 def ERROR(message):
        errtext = sys.exc_info()[1]
        print 'WEBVIEWER - %s::%s (%d) - %s' % (message, 
sys.exc_info()[2].tb_frame.f_code.co_name, sys.exc_info()[2].tb_lineno, errtext)
        return str(errtext)
        
 def LOG(message):
-       print 'WEBVIEWER: %s' % message
+       print 'WEBVIEWER: %s' % ENCODE(str(message))
 
 def clearDirFiles(filepath):
        if not os.path.exists(filepath): return
@@ -76,7 +84,7 @@ class WebReader:
                #self.browser.addheaders = [('User-agent','Mozilla/5.0 (X11; 
Linux i686; rv:2.0.1) Gecko/20100101 Firefox/4.0.1')]
                
        def getWebPage(self, url, callback=None):
-               print url
+               LOG(url)
                if not callback: callback = self.fakeCallback
                resData = ResponseData(url)
                id = ''
@@ -158,7 +166,11 @@ class WebReader:
                                        if c == submit_control: break
                                        ct += 1 
                if not callback(5, __language__(30105)): return None
-               res = self.browser.submit(nr=ct)
+               try:
+                       res = self.browser.submit(nr=ct)
+               except:
+                       self.browser.back()
+                       return None
                if not callback(60, __language__(30106)): return None
                html = res.read()
                resData = self.checkRedirect(ResponseData(res.geturl(), 
data=html), callback=callback) #@UnusedVariable
@@ -441,7 +453,7 @@ class WebPage:
        def getForm(self, url=None, name=None, action=None, index=None):
                if url:
                        if not re.match(url, self.url): return None
-                       print 'URL MATCH: %s' % self.url
+                       LOG('URL MATCH: %s' % self.url)
                if name:
                        idx = 0
                        for f in self.forms:
@@ -454,10 +466,10 @@ class WebPage:
                        idx = 0
                        for f in self.forms:
                                if action in f.form.action:
-                                       print 'ACTION MATCH: %s' % action
+                                       LOG('ACTION MATCH: %s' % action)
                                        if index != None:
                                                if index != idx:
-                                                       print 'WRONG INDEX: %s 
instead of %s' % (idx, index)
+                                                       LOG('WRONG INDEX: %s 
instead of %s' % (idx, index))
                                                        idx += 1
                                                        continue
                                        return f
@@ -471,10 +483,10 @@ class WebPage:
        def matches(self, url_regex=None, html_regex=None):
                if not url_regex and not html_regex: return False
                if url_regex and not re.match(url_regex, self.url):
-                       print 'AUTOCLOSE: NO URL MATCH'
+                       LOG('AUTOCLOSE: NO URL MATCH')
                        return False
                if html_regex and not re.match(html_regex, self.html):
-                       print 'AUTOCLOSE: NO HTML MATCH'
+                       LOG('AUTOCLOSE: NO HTML MATCH')
                        return False
                return True
        
@@ -545,7 +557,7 @@ class Link(PageElement, LinkBase):
                        text = match.group('text')
                        image_m = HC.imageFilter.search(text)
                        if image_m:
-                               self.image = image_m.group('url')
+                               self.image = 
fullURL(self.baseUrl,image_m.group('url'))
                                alt_m = re.search('alt="([^"]+?)"', 
image_m.group(0))
                                if alt_m: text = alt_m.group(1)
                        text = HC.tagFilter.sub('', text).strip()
@@ -555,7 +567,7 @@ class Link(PageElement, LinkBase):
        def processURL(self):
                if not self.url: return
                self.url = self.url.replace('&amp;', '&')
-               self._isImage = 
bool(re.search('http://.+?\.(?:jpg|png|gif|bmp)', self.url))
+               self._isImage = 
bool(re.search('http://.+?\.(?:jpg|png|gif|bmp)$', self.url))
                if self._isImage: return
                        
        def urlShow(self):
@@ -1095,13 +1107,13 @@ class ViewerWindow(BaseWindow):
                self.selected = None
                self.lastPos = 0
                self.page = page
-               xbmcgui.lock()
-               try:
-                       self.hideLists()
-                       self.getImages()
-                       self.getLinks()
-               finally:
-                       xbmcgui.unlock()
+               #xbmcgui.lock()
+               #try:
+               self.hideLists()
+               self.getImages()
+               self.getLinks()
+               #finally:
+                       #xbmcgui.unlock()
                self.displayPage() 
                #self.endProgress()
        
@@ -1173,11 +1185,11 @@ class ViewerWindow(BaseWindow):
                
        def selectElement(self, element=None):
                if element: self.currentElementIndex = element.elementIndex
-               xbmcgui.lock()
+               #xbmcgui.lock()
                try:
                        element = self.currentElement()
                        if not element:
-                               xbmcgui.unlock()
+                               #xbmcgui.unlock()
                                return
                        itemIndex = self.pageList.getSelectedPosition()
                        item = self.pageList.getListItem(element.lineNumber)
@@ -1207,8 +1219,9 @@ class ViewerWindow(BaseWindow):
                        self.pageList.setDisplay(one + two)
                        #item.setProperty('selected',element.type)
                        self.elementChanged()
-               finally:
-                       xbmcgui.unlock()
+               except:
+                       raise
+                       #xbmcgui.unlock()
        
        def currentElement(self):
                if not self.page: return None
@@ -1219,7 +1232,7 @@ class ViewerWindow(BaseWindow):
                element = self.currentElement()
                if not element: return
                try:
-                       xbmcgui.lock()
+                       #xbmcgui.lock()
                        if element.type == PE_LINK:
                                if self.linkList.getSelectedPosition() != 
element.typeIndex: self.linkList.selectItem(element.typeIndex)
                                self.controlList.setVisible(False)
@@ -1239,8 +1252,9 @@ class ViewerWindow(BaseWindow):
                                self.linkList.setVisible(False)
                                self.imageList.setVisible(False)
                                self.controlList.setVisible(True)
-               finally:
-                       xbmcgui.unlock()
+               except:
+                       raise
+                       #xbmcgui.unlock()
        
        def hideLists(self):
                self.linkList.setVisible(False)
@@ -1357,7 +1371,7 @@ class ViewerWindow(BaseWindow):
                try:
                        idx = int(idx)
                except:
-                       print 'error', idx
+                       LOG('error', idx)
                        return None
                if idx < 0: return None
                if idx >= len(self.form.controls):
@@ -1442,7 +1456,7 @@ class ViewerWindow(BaseWindow):
                LOG('displayPage() - START')
                disp, title = self.page.forDisplayWithIDs()
                self.baseDisplay = disp
-               xbmcgui.lock()
+               #xbmcgui.lock()
                self.hideLists()
                self.history.updateCurrent(self.page.url, title)
                try:
@@ -1465,8 +1479,9 @@ class ViewerWindow(BaseWindow):
                                old, disp = disp.split('[CR]', 1)
                                index += len(self.idFilter.sub('', old)) + 4
                        plist.update()
-               finally:
-                       xbmcgui.unlock()
+               except:
+                       raise
+                       #xbmcgui.unlock()
                self.currentElementIndex = 0
                if self.line:
                        self.pageList.selectItem(self.line)
@@ -1475,7 +1490,7 @@ class ViewerWindow(BaseWindow):
                
                self.selectionChanged(self.pageList.getSelectedPosition(), -1)
                for fd in self.autoForms:
-                       print fd
+                       LOG(fd)
                        f = self.page.getForm(url=fd.get('url'), 
name=fd.get('name'), action=fd.get('action'), index=fd.get('index'))
                        if f:
                                submit = fd.get('autosubmit') == 'true'
@@ -1508,8 +1523,10 @@ class ViewerWindow(BaseWindow):
                for link in self.page.links():
                        item = xbmcgui.ListItem(link.text or link.url, 
link.urlShow())
                        if link.isImage():
+                               LOG(link.fullURL())
                                item.setIconImage(link.fullURL())
                        elif link.image:
+                               LOG(link.image)
                                item.setIconImage(link.image)
                        else:
                                item.setIconImage('webviewer-link.png')
@@ -1669,12 +1686,12 @@ class ViewerWindow(BaseWindow):
                element = self.currentElement()
                index = element.displayPageIndex - item.index
                disp = disp[0:index] + 
disp[index:].replace(self.cTags[element.type], self.selectedCTag, 1)
-               try:
-                       xbmcgui.lock()
-                       self.pageList.setDisplay(disp)
-                       self.elementChanged()
-               finally:
-                       xbmcgui.unlock()
+               #try:
+                       #xbmcgui.lock()
+               self.pageList.setDisplay(disp)
+               self.elementChanged()
+               #finally:
+                       #xbmcgui.unlock()
        
        def bookmarks(self):
                options = [__language__(30120), __language__(30121), '-         
                -']
@@ -1987,7 +2004,7 @@ class Downloader:
        def progCallback(self, read, total):
                if self.prog.iscanceled(): return False
                pct = ((float(read) / total) * (self.file_pct)) + 
(self.file_pct * self.current)
-               self.prog.update(pct)
+               self.prog.update(int(pct))
                return True
                
        def downloadURLs(self, targetdir, urllist, ext='', 
opener=urllib2.urlopen):
@@ -2045,7 +2062,10 @@ class Downloader:
                if not target: return #do something else eventually if we need 
to
                if not callback: callback = self.fakeCallback
                urlObj = opener(url)
-               size = int(urlObj.info().get("content-length", -1))
+               try:
+                       size = int(urlObj.info().get("content-length", -1))
+               except:
+                       size = 1
                ftype = urlObj.info().get("content-type", '')
                outfile = open(target, 'wb')
                read = 0
@@ -2143,7 +2163,7 @@ if __name__ == '__main__':
        except: pass
        
        if not start_url: start_url = getHome() or 
'http://wiki.xbmc.org/index.php?title=XBMC_Online_Manual'
-       print start_url
+       LOG(start_url)
        apath = xbmc.translatePath(__addon__.getAddonInfo('path'))
        if not 
os.path.exists(os.path.join(apath,'resources','skins','Default','720p','script-webviewer-page.xml')):
                apath = 'Q:\\scripts\\.modules\\script.web.viewer\\' #for 
XBMC4Xbox when used as a module

-----------------------------------------------------------------------

Summary of changes:
 script.web.viewer/addon.xml                  |    2 +-
 script.web.viewer/changelog.txt              |   16 ++++-
 script.web.viewer/fanart.jpg                 |  Bin 0 -> 58893 bytes
 script.web.viewer/lib/webviewer/webviewer.py |  100 +++++++++++++++----------
 4 files changed, 76 insertions(+), 42 deletions(-)
 create mode 100644 script.web.viewer/fanart.jpg


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to