Kirjoittaja Aihe: JavaScript/Python-osaajan taitoja kaivattaisiin [Ratkaistu]  (Luettu 7291 kertaa)

kestosippi

  • Käyttäjä
  • Viestejä: 185
    • Profiili
Ongelma on skripti, joka toimii vajavaisesti.

Tämä ohjelma avaa SaunaBrowser-selaimen, joka osaa näyttää ElisaViihde/Saunavisio-tv-tallenteita VLC-playerilla ihan oikein selaimen VLC-napista painamalla halutun tallenteen kohdalla.

Tämän pitäisi myös suorittaa samaisen tallenteen imurointi tiedostona omalle kiintolevylle WGET-komennolla ilman sen näyttämistä "WGET"-napista painamalla.
-Tämä wget-toiminto ei pelaa, vaan siitä napista joutuu "www.fi"-sivustolle.

Osaisiko joku neuvoa pliis.

Allaoleva koodi siis alkuperäinen, ja siinä ei toimi wget-imurointitoiminto. Myöhemmässä viestissä on korjattu skripti, joka toimii.
Koodia: [Valitse]
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

#################### HUOMIO HUOMIO HUOMIO ####################
#
# Testattu Python 2.6.2 ja sitä vastaavalla PyQt4 paketilla
#
#
# Windows asennus, ohjelmat asennettu oletusasetuksin
# Python http://python.org/ftp/python/2.6.2/python-2.6.2.msi
# PyQt4  http://www.riverbankcomputing.com/static/Downloads/PyQt4/PyQt-Py2.6-gpl-4.5.4-1.exe
#
#
# Linux asennus
# sudo apt-get install python-qt4
# Linuxissa scripti pitää tallentaa muodosssa Western (ISO-8859-15) jotta selaimen alt="Siirrä tallenne" näkyy oikein
#
#
# Mac OS asennus
# Varmaankin toimii, joku vois testailla
#
#
# Konfigurointi
# Muuta username ja password
# Muuta kohtien # WINDOWS ASETUKSET tai # LINUX ASETUKSET jälkeisiä rivejä (vlc, wget, directory)
#
#
#################### HUOMIO HUOMIO HUOMIO ####################


import os, sys
from PyQt4 import QtCore, QtGui, QtWebKit
if os.name == 'nt': import subprocess


username  = ''
password  = ''

if os.name == 'nt':
# WINDOWS ASETUKSET
vlc       = '"C:\\Program Files\\VideoLAN\\VLC\\vlc.exe"  --sub-language fi --vout-filter deinterlace --deinterlace-mode blend '
wget      = '"c:\\apu\\wget.exe" -t0 -c -S --progress=dot:mega -owget.log '
directory = 'c:\\video\\saunavisio\\'
else:
# LINUX ASETUKSET
vlc       = 'vlc --sub-language fi --vout-filter deinterlace --deinterlace-mode blend '
wget      = 'wget -t0 -c -S --progress=dot:mega -owget.log '
directory = 'video/saunavisio/'


png_vlc = "data:image/png;base64,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"

png_wget = "data:image/png;base64,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"


if directory != '':
if os.path.isfile(directory) == False:
if os.path.isdir(directory) == False:
os.makedirs(directory)


class SaunaBrowser(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
self.resize(1016, 734)
screen = QtGui.QDesktopWidget().screenGeometry()
size =  self.geometry()
self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2)
self.setWindowTitle("SaunaBrowser")

self.web = QtWebKit.QWebView(self)
self.web.setZoomFactor(1.0)
QtCore.QObject.connect(self.web, QtCore.SIGNAL("loadFinished(bool)"), self.loadFinished)
self.web.load(QtCore.QUrl("http://www.saunavisio.fi/tvrecorder/index.sl?username=" + username + "&password=" + password))

layout = QtGui.QVBoxLayout(self)
layout.setMargin(0)
layout.addWidget(self.web)


def loadFinished(self, ok):
url1 = unicode(self.web.url().toString())

self.web.page().mainFrame().evaluateJavaScript("$('table[class=tablemain]').css('width', '100%')")
self.web.page().mainFrame().evaluateJavaScript("$('td[class=footerinfo]').parent().remove()")

if url1.find("http://www.saunavisio.fi/tvrecorder/ready.sl", 0) != -1:
self.web.page().mainFrame().evaluateJavaScript("$('img[alt=Katso]').attr('src', '" + png_vlc + "')")
self.web.page().mainFrame().evaluateJavaScript("$('a[class=movetip]').parent().css('width', '95px')")
self.web.page().mainFrame().evaluateJavaScript("$('a[href$=view=true]').parent().append('<a title=" + chr(34) + "Siirrä tallenne" + chr(34) + " href=" + chr(34) + "http://www.fi/" + chr(34) + "><img border=" + chr(34) + "0" + chr(34) + " alt=" + chr(34) + "Siirrä" + chr(34) + " src=" + chr(34) + png_wget + chr(34) + "></a>')")

js = "var row = document.getElementsByTagName('tr');\n\
for (var i = 0; i < row.length; i++) {\n\
var length = row[i].className.length;\n\
if (row[i].className.substring(length, length - 11) == 'programview') {\n\
var link = row[i].getElementsByTagName('a');\n\
for (var ii = 0; ii < link.length; ii++) {\n\
if (link[ii].title == 'Katso tallenne') {var wget = link[ii].href + '&wget=true';}\n\
if (link[ii].href == 'http://www.fi/') {link[ii].href = wget;}\n\
}\n\
}\n\
}"
self.web.page().mainFrame().evaluateJavaScript(js)

if url1.find("http://www.saunavisio.fi/tvrecorder/program.sl?programid=", 0) != -1:
if url1.find("view=true", 0) != -1:
html = unicode(self.web.page().mainFrame().toHtml())
html = str(html.encode("utf-8"))

self.web.page().mainFrame().evaluateJavaScript("$('object').remove()")

i1 = html.find("doGo('", 0)
if i1 != -1:
i2 = html.find("'", i1 + 7)
if i2 != -1:
url2 = chr(34) + html[i1 + 6:i2] + chr(34)
url2 = url2.replace("tvmedia11.saunalahti.fi", "tvmedia12.saunalahti.fi")
self.web.load(QtCore.QUrl("http://www.saunavisio.fi/tvrecorder/ready.sl"))

aika = ""
i1 = html.find("<b>Aika</b>: ", 0)
if i1 != -1:
i2 = html.find("<br>", i1 + 14)
if i2 != -1:
aika = html[i1 + 13:i2]
vvvv = aika[6:10]
kk = aika[3:5]
pp = aika[0:2]
hh = aika[11:13]
mm = aika[14:16]
aika = vvvv + kk + pp + "_" + hh + mm

ohjelma = "tunnistamaton"
i1 = html.find("<b>Ohjelma</b>: ", 0)
if i1 != -1:
i2 = html.find("<br>", i1 + 17)
if i2 != -1:
ohjelma = html[i1 + 16:i2]

if aika != "":
ohjelma = aika + "_" + ohjelma + ".ts"
else:
ohjelma = ohjelma + ".ts"

ohjelma = ohjelma.replace(chr(32), "_")     #  
ohjelma = ohjelma.replace(chr(34), "")      # "
ohjelma = ohjelma.replace(chr(40), "")      # (
ohjelma = ohjelma.replace(chr(41), "")      # )
ohjelma = ohjelma.replace(chr(42), "")      # *
ohjelma = ohjelma.replace(chr(47), "")      # /
ohjelma = ohjelma.replace(chr(58), "")      # :
ohjelma = ohjelma.replace(chr(60), "")      # <
ohjelma = ohjelma.replace(chr(62), "")      # >
ohjelma = ohjelma.replace(chr(63), "")      # ?
ohjelma = ohjelma.replace(chr(92), "")      # \
ohjelma = ohjelma.replace(chr(124), "")     # |
if os.name == 'nt': ohjelma = ohjelma.decode('utf-8').encode('latin1')

if url1.find("wget=true", 0) != -1:
if os.name == 'nt':
subprocess.Popen(wget + url2 + " -O" + directory + ohjelma)
else:
os.system(wget + url2 + " -O" + directory + ohjelma + "&")
else:
if os.name == 'nt':
subprocess.Popen(vlc + url2)
else:
os.system(vlc + url2 + "&")


app = QtGui.QApplication(sys.argv)
saunabrowser = SaunaBrowser()
#saunabrowser.show()
saunabrowser.showMaximized()
sys.exit(app.exec_())
« Viimeksi muokattu: 06.01.11 - klo:20.07 kirjoittanut kestosippi »

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: Python-skriptin osaajan taitoja kaivattaisiin
« Vastaus #1 : 05.01.11 - klo:16.14 »
Jäljempänä tulevaan skriptiin on lisätty debugfilen luomistoiminto

Jäljempänä tuleva skripti on ratkaisuehdotus ongelmaan, mutta sitä ei ole vielä testattu ja varmistettu toimivaksi


HUOM! Tämän viestin lopussa on korjattu skripti jonka pitäisi ratkaista kyseinen ongelma

Ihan ensimmäiseksi huomautan että tuossa skriptissä on JavaScriptiä Python skriptin seassa, ja se ongelma vaikuttaisi olevan siinä JavaScriptissä. Jos otsikoksi vaihtaisi esim. "JavaScript/Python osaajan taitoja kaivataan" niin voisi houkutella enemmän asiantuntevia neuvojia paikalle.

...Mutta katsotaan jos tämä hoituisi ilman enempiä asiantuntijoita. Katsoin tuota hieman ja minulle tulee mieleen pari vaihtoehtoa miksi se ei toimi.

Ensimmäinen olisi että tuo "Katso tallenne" -nappula on jotenkin muuttunut, eikä sen HTML title -attribuutti ole enää ihan prikulleen 'Katso tallenne', niinkuin koodi olettaa. Tämän vian korjaamiseksi täytyy riviltä 98 seuraava koodipätkä:
Koodia: [Valitse]
if (link[ii].title == 'Katso tallenne') {var wget = link[ii].href + '&wget=true';}\n\muuttaa tällaiseksi:
Koodia: [Valitse]
if (link[ii].title.indexOf('Katso') != -1) {var wget = link[ii].href + '&wget=true';}\n\eli kokeile etsiä tuo ensimmäinen rivi koodista ja muuttaa se tuon alemman mukaiseksi. Onnistuu ihan leikkaamalla ja liimaamalla ja tekstieditorilla.

Tuo korjaus ei siis enää luota siihen että linkin title on 'Katso tallenne', vaan se vain katsoo että linkistä löytyy ylipäätään tuo sana 'Katso'.

Toinen mahdollisuus on että noiden elementtien järjestys on muuttunut. Tuon vian korjaamiseen täytyisi seuraavat rivit (alkaen riviltä 97):
Koodia: [Valitse]
for (var ii = 0; ii < link.length; ii++) {\n\
if (link[ii].title == 'Katso tallenne') {var wget = link[ii].href + '&wget=true';}\n\
if (link[ii].href == 'http://www.fi/') {link[ii].href = wget;}\n\
}\n\
muuttaa tällaisiksi:
Koodia: [Valitse]
for (var ii = 0; ii < link.length; ii++) {\n\
if (link[ii].title == 'Katso tallenne') {var wget = link[ii].href + '&wget=true';}\n\
}\n\
for (var ii = 0; ii < link.length; ii++) {\n\
if (link[ii].href == 'http://www.fi/') {link[ii].href = wget;}\n\
}\n\

En oikein itse pysty tämän toimivuutta testaamaan, joten en voi olla varma toimiiko tämä tai tuliko minulle jotain kirjoitusvirheitä tms., joten kokeile näitä ja raportoi takaisin miten onnistui.




Tässä nyt kokonainen skripti, jonka pitäisi toimia. Tämän voi kopioida ja tallentaa .py -päätteiseen tiedostoon, ja sen jälkeen kyseisen tiedoston voi suorittaa.
Koodia: [Valitse]
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

#################### HUOMIO HUOMIO HUOMIO ####################
#
# Testattu Python 2.6.2 ja sitä vastaavalla PyQt4 paketilla
#
#
# Windows asennus, ohjelmat asennettu oletusasetuksin
# Python http://python.org/ftp/python/2.6.2/python-2.6.2.msi
# PyQt4  http://www.riverbankcomputing.com/static/Downloads/PyQt4/PyQt-Py2.6-gpl-4.5.4-1.exe
#
#
# Linux asennus
# sudo apt-get install python-qt4
# Linuxissa scripti pitää tallentaa muodosssa Western (ISO-8859-15) jotta selaimen alt="Siirrä tallenne" näkyy oikein
#
#
# Mac OS asennus
# Varmaankin toimii, joku vois testailla
#
#
# Konfigurointi
# Muuta username ja password
# Muuta kohtien # WINDOWS ASETUKSET tai # LINUX ASETUKSET jälkeisiä rivejä (vlc, wget, directory)
#
#
#################### HUOMIO HUOMIO HUOMIO ####################


import os, sys
from PyQt4 import QtCore, QtGui, QtWebKit
if os.name == 'nt': import subprocess


username  = ''
password  = ''

if os.name == 'nt':
# WINDOWS ASETUKSET
vlc       = '"C:\\Program Files\\VideoLAN\\VLC\\vlc.exe"  --sub-language fi --vout-filter deinterlace --deinterlace-mode blend '
wget      = '"c:\\apu\\wget.exe" -t0 -c -S --progress=dot:mega -owget.log '
directory = 'c:\\video\\saunavisio\\'
else:
# LINUX ASETUKSET
vlc       = 'vlc --sub-language fi --vout-filter deinterlace --deinterlace-mode blend '
wget      = 'wget -t0 -c -S --progress=dot:mega -owget.log '
directory = 'video/saunavisio/'


png_vlc = "data:image/png;base64,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"

png_wget = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAOCAIAAADFS1nYAAAABnRSTlMA/wD/AP83WBt9AAAFrUlEQVR42gGiBV36Af///wAAAPfp5QTw6gH69wH6+AD+/QD+/gD//gD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v/+/QD6+P7+/P8DBv0fKgojKwAAAAH////42M4E6uEBBQYA////+/oA/PsA/v0A//4A//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAA/v3//PsA9vT/8ez/7uj9MUMKSFsE9uDZBdfIAAcJ/wMEAP38//j3APv5AP37AP7/AAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP79APj1//Ds/+7pAKqM9RgfAfeojwL18AEGCAAAAP/6+AD28//6+AD9/QD//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6+f/y7f/s5v728/8mMwQA3tL/AgP/BAUA/Pv/9/TU3+QOAv0dCgT+/v7b8PcnEQoAAAC54e5HHxIAAACq2+vg8vhPIhMnEQqY0+bN6/Tv+PwTCASFOSG54u4RBwUAAAAAAgESCQc4FQr/9fH/+ff//wD/4tkE/+XeAAkLAAICAPv6//bz4+Xnw+byhC8Tqd/yktnvxkce+f3/jsvmRg36itbu9Pv+RxoL1eLmJv8MntPks0AaBwIB9v3/DvXs+vPz1uz9reL0ZCQP7AQCNwMM/wAAAAAA/wAA//fzBP/x6wD69wADBAD+/gD690UUBYHN9AAuEpvd8QQCAf7//7Tl9E8cC+P1+77o97ZBGgIBAQAAAAAAAAMBAPb8/9n2+w4FAhkJBGAiDur4/Mfs92IjDgAAAAAAAAAAAP//AP8A////AAT/+/oA++4ABwkAAQEA/PsCAP81Ewi75/UIAgEvEAfT8Pqq4vSaNhao4fNdIQ10zuzi9vvt+f6VNRXp+P2N1+8KBAExEQgvEQcAAAAWCAQAAAAAAAAAAAD/AAAAAAD/AAAAAAD/AAAEAAAA/wAAAPn3AQAAAAAAAAAAQxgKcs7sjDIU7Pj9nt3xIAsEDwYD7/r+HQsFcSgQBAIBUMHmKA4GGAkEkzUWAAAAAAAAAAAAAAAAAAAA9/z/AAAAAAAAAAAA//8A/wD//v8A/wAABP8IDAD39AAAAAABAAAAAAAAADUTCPb8/kYZC9Tw+W3M69BKHv8AAE4cC3XO7CAMBdjy+pg2FgIBAQ0EAoXU7gAAABMHAmclEAAAAAAAABMHA/8AAAAAAP7/AP8A//7/AP8AAP8HCgHye1T/288AAAAAAAAAAAAAAAAAAAD0+/4MBQIAAADg9PsgDAUAAAAEAQH7/v/s+f0ZCQQAAAAAAADw+v3b8/sAAAAWCAMbCgQAAAAAAAAAAAAAAAAAAAD//wD+AAD//wD/AAACKDQB883A/IplAP7+/wAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAA//8A/wAA/wAAAAICB3ieAgwyPwJSbf7/AP7/AP7/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP3/AP4AAP7//////wVTbQ0xPAH///8AAADzzcH8uaP93dP+8ewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDxQCIiwGSF4NMz8AAACej/a6Ul0M8QAAAABJRU5ErkJggg=="


if directory != '':
if os.path.isfile(directory) == False:
if os.path.isdir(directory) == False:
os.makedirs(directory)


class SaunaBrowser(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
self.resize(1016, 734)
screen = QtGui.QDesktopWidget().screenGeometry()
size =  self.geometry()
self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2)
self.setWindowTitle("SaunaBrowser")

self.web = QtWebKit.QWebView(self)
self.web.setZoomFactor(1.0)
QtCore.QObject.connect(self.web, QtCore.SIGNAL("loadFinished(bool)"), self.loadFinished)
self.web.load(QtCore.QUrl("http://www.saunavisio.fi/tvrecorder/index.sl?username=" + username + "&password=" + password))

layout = QtGui.QVBoxLayout(self)
layout.setMargin(0)
layout.addWidget(self.web)


def loadFinished(self, ok):
url1 = unicode(self.web.url().toString())

self.web.page().mainFrame().evaluateJavaScript("$('table[class=tablemain]').css('width', '100%')")
self.web.page().mainFrame().evaluateJavaScript("$('td[class=footerinfo]').parent().remove()")

if url1.find("http://www.saunavisio.fi/tvrecorder/ready.sl", 0) != -1:
self.web.page().mainFrame().evaluateJavaScript("$('img[alt=Katso]').attr('src', '" + png_vlc + "')")
self.web.page().mainFrame().evaluateJavaScript("$('a[class=movetip]').parent().css('width', '95px')")

js = """
var row = document.getElementsByTagName('tr');
if(!done) {
for (var i = 0; i < row.length; i++) {
var length = row[i].className.length;
if (row[i].className.substring(length, length - 11) == 'programview') {
var link = row[i].getElementsByTagName('a');
for (var ii = 0; ii < link.length; ii++) {
if (link[ii].title == "Katso tallenne" ) {
var wget = link[ii].href + '&wget=true';
var parent = link[ii].parentNode;
var child = document.createElement('a');
child.href=wget;
child.title=wget;
var image = document.createElement('img');
image.border = '0';
image.alt = "Lataa";
image.setAttribute('src', """ + chr(34) + png_wget + chr(34) + """);
child.appendChild(image);
parent.appendChild(child);
}
}
}
}
}
var done=true;
"""
self.web.page().mainFrame().evaluateJavaScript(js)

if url1.find("http://www.saunavisio.fi/tvrecorder/program.sl?programid=", 0) != -1:
if url1.find("view=true", 0) != -1:
html = unicode(self.web.page().mainFrame().toHtml())
html = str(html.encode("utf-8"))

self.web.page().mainFrame().evaluateJavaScript("$('object').remove()")

i1 = html.find("doGo('", 0)
if i1 != -1:
i2 = html.find("'", i1 + 7)
if i2 != -1:
url2 = chr(34) + html[i1 + 6:i2] + chr(34)
url2 = url2.replace("tvmedia11.saunalahti.fi", "tvmedia12.saunalahti.fi")
self.web.load(QtCore.QUrl("http://www.saunavisio.fi/tvrecorder/ready.sl"))

aika = ""
i1 = html.find("<b>Aika</b>: ", 0)
if i1 != -1:
i2 = html.find("<br>", i1 + 14)
if i2 != -1:
aika = html[i1 + 13:i2]
vvvv = aika[6:10]
kk = aika[3:5]
pp = aika[0:2]
hh = aika[11:13]
mm = aika[14:16]
aika = vvvv + kk + pp + "_" + hh + mm

ohjelma = "tunnistamaton"
i1 = html.find("<b>Ohjelma</b>: ", 0)
if i1 != -1:
i2 = html.find("<br>", i1 + 17)
if i2 != -1:
ohjelma = html[i1 + 16:i2]

if aika != "":
ohjelma = aika + "_" + ohjelma + ".ts"
else:
ohjelma = ohjelma + ".ts"

ohjelma = ohjelma.replace(chr(32), "_")     #  
ohjelma = ohjelma.replace(chr(34), "")      # "
ohjelma = ohjelma.replace(chr(40), "")      # (
ohjelma = ohjelma.replace(chr(41), "")      # )
ohjelma = ohjelma.replace(chr(42), "")      # *
ohjelma = ohjelma.replace(chr(47), "")      # /
ohjelma = ohjelma.replace(chr(58), "")      # :
ohjelma = ohjelma.replace(chr(60), "")      # <
ohjelma = ohjelma.replace(chr(62), "")      # >
ohjelma = ohjelma.replace(chr(63), "")      # ?
ohjelma = ohjelma.replace(chr(92), "")      # \
ohjelma = ohjelma.replace(chr(124), "")     # |
if os.name == 'nt': ohjelma = ohjelma.decode('utf-8').encode('latin1')

if url1.find("wget=true", 0) != -1:
if os.name == 'nt':
subprocess.Popen(wget + url2 + " -O" + directory + ohjelma)
else:
os.system(wget + url2 + " -O" + directory + ohjelma + "&")
else:
if os.name == 'nt':
subprocess.Popen(vlc + url2)
else:
os.system(vlc + url2 + "&")


app = QtGui.QApplication(sys.argv)
saunabrowser = SaunaBrowser()
#saunabrowser.show()
saunabrowser.showMaximized()
sys.exit(app.exec_())
« Viimeksi muokattu: 06.01.11 - klo:18.10 kirjoittanut Tommi S. »

kestosippi

  • Käyttäjä
  • Viestejä: 185
    • Profiili
Vs: Python-skriptin osaajan taitoja kaivattaisiin
« Vastaus #2 : 05.01.11 - klo:18.36 »
Ei vaikutusta, wget-napista joutuu vain www.fi-sivustolle edelleen.

Tämä ohjelma kyllä avaa SaunaBrowser-selaimen, ja sillä "Katso tallenne"-napilla avautuu VLC-player ikkunaksi, ja tallenne alkaa "soimaan" ihan niinkun kuuluukin.

(Otsikkoa muutettu neuvomallasi tavalla, toivoen että viesti herättäisi enemmän mielenkiintoa)

Itse en ymmärrä skriptistä mitään. Tämä skripti toimiessaan olisi mainio apuväline Ubuntukäyttäjille, joilla on Saunavisio tai ElisaViihde. Meillä on ollut ongelmia saada tallenteet näkymään suoraan Firefoxilla, ja lisäksi tällä SaunaBrowserilla on ne saanut joskus tallennetuksikin WGET-imuroinnilla. Jostain syystä se vaan ei enää onnistu.
« Viimeksi muokattu: 05.01.11 - klo:18.47 kirjoittanut kestosippi »

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: Python-skriptin osaajan taitoja kaivattaisiin
« Vastaus #3 : 05.01.11 - klo:19.27 »
Tuota on vaikea ratkoa koska ei näe sitä HTML-koodia jota se skripti yrittää muokata, niin ei tiedä että missä se skripti menee pieleen. Siksi ehdotankin että teet skriptiin seuraavan muutoksen, joka tallentaa jokaisen käydyn sivun HTML-koodin tiedostoon nimeltä debugfile, ja sitten käyt sellaisella sivulla jossa on tuollainen wget-tallennuslinkki ja laitat sen syntyneen debugfilen tänne keskusteluun, niin päästään näkemään miltä sen sivun rakenne näyttää.

Lisää siis tuohon skriptiin rivin 82 jälkeen seuraavat rivit:
Koodia: [Valitse]
debugfile = open("debugfile", 'a')
debugfile.write("\n\n\n\n" + url1 + "\n##########################################\n\n\n\n")
debugfile.write(self.web.page().mainFrame().toHtml())
debugfile.close()

Siellä skriptissä on siis tällainen kohta:
Koodia: [Valitse]
def loadFinished(self, ok):
url1 = unicode(self.web.url().toString())

self.web.page().mainFrame().evaluateJavaScript("$('table[class=tablemain]').css('width', '100%')")
self.web.page().mainFrame().evaluateJavaScript("$('td[class=footerinfo]').parent().remove()")
niin tuohon tyhjän rivin tilalle laitetaan nuo ylempänä olevat rivit jotka alkavat 'debugfile'.

Se debugfile siis sisältää kaikkien sivujen koodin jossa on käyty. Ne sivut on eroteltu sellaisella ##### viivalla, ja jos luulet osaavasi erottaa sen lataussivun sieltä tiedostosta niin voit laittaa pelkän sen koodin, ei tarvitse koko debugfileä.

Muokkasin tuon muutoksen myös siihen edellisen viestini pitkään koodiin, josta koko skriptin voi kopioida kerralla.

Jos sinne samalle lataussivulle pääsee myös esim. Firefoxilla, niin sekin riittäisi että ottaa Firefoxista Näytä->Sivun lähdekoodi ja kopioi sen lähdekoodin tänne keskusteluun. En yhtään tiedä miten tuo saunalahtisysteemi toimii.
« Viimeksi muokattu: 05.01.11 - klo:19.39 kirjoittanut Tommi S. »

kestosippi

  • Käyttäjä
  • Viestejä: 185
    • Profiili
Vs: JavaScript/Python-osaajan taitoja kaivattaisiin
« Vastaus #4 : 05.01.11 - klo:20.09 »
No sain sellaisen debugfileen.

Ensin avasin sen tallenteiden sivun, ja starttasin yhden ohjelman siitä, ja se rupesi näkymään VLC-ikkunassa.
Suljin sen, ja sitten yritin tallentaa sen sillä WGET-napilla, ja jouduin sitten taas www.fi-sivustolle.

[ylläpito on poistanut liitteen]

peran

  • Vieras
Vs: JavaScript/Python-osaajan taitoja kaivattaisiin
« Vastaus #5 : 05.01.11 - klo:20.13 »
Jo heti alussa, kun lukasin tätä tuli itselleni mieleen, että tartteisiko wget:n lähettää vlc:n headeri, jotta lähtisi rullaamaan?

kestosippi

  • Käyttäjä
  • Viestejä: 185
    • Profiili
Vs: JavaScript/Python-osaajan taitoja kaivattaisiin
« Vastaus #6 : 05.01.11 - klo:20.25 »
Jo heti alussa, kun lukasin tätä tuli itselleni mieleen, että tartteisiko wget:n lähettää vlc:n headeri, jotta lähtisi rullaamaan?
Niin.... Kyllä pystyn imuroimaan sen tallenteen erikseen wgetillä pääte-ikkunassa, kun ensin avaan tallenteen VLC:llä ja kopsaan siitä sen striimin osoitteen wgetille.

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: JavaScript/Python-osaajan taitoja kaivattaisiin
« Vastaus #7 : 05.01.11 - klo:22.12 »
Tein tuosta debugfileestä itselleni testisivun jolla olen nyt tuota skriptiä kokeillut.

Jos ne JavaScriptin pätkät siitä Python-skriptistä suoraan kopioi Chromiumin JavaScript-konsoliin, niin ne toimivat ihan niin kuin pitääkin, eli WGET-logot ilmestyvät, ja niissä on jokaisessa linkki www.fi:hin, ja seuraava skriptin pätkä muuttaa tuon linkin osoittamaan siihen varsinaiseen tallenteeseen. Ongelma näyttää siis olevan siinä miten tuo Python-skripti ja sen luoma QtWebKit-selain käsittelevät JavaScriptiä.

Siinä Python-skriptissä on tällaiset rivit:
Koodia: [Valitse]
def loadFinished(self, ok):
url1 = unicode(self.web.url().toString())

self.web.page().mainFrame().evaluateJavaScript("$('table[class=tablemain]').css('width', '100%')")
self.web.page().mainFrame().evaluateJavaScript("$('td[class=footerinfo]').parent().remove()")

if url1.find("http://www.saunavisio.fi/tvrecorder/ready.sl", 0) != -1:
self.web.page().mainFrame().evaluateJavaScript("$('img[alt=Katso]').attr('src', '" + png_vlc + "')")
self.web.page().mainFrame().evaluateJavaScript("$('a[class=movetip]').parent().css('width', '95px')")
self.web.page().mainFrame().evaluateJavaScript("$('a[href$=view=true]').p... blah blah ... piirretään WGET-logot ...)")

js = "var row = document.getElementsByTagName ... blah blah ... muutetaan www.fi oikeaksi osoitteeksi ...}"
self.web.page().mainFrame().evaluateJavaScript(js)

Tuota viimeistä riviä ei päästä suorittamaan, ja siitä ongelma johtuu. QtWebKitin Javascript hyytyy jotenkin ennen tuota, tai jotain muuta outoa tapahtuu. Kokeilin tuota niin että laitoin tuonne js-muuttujaan sekaan yhden alert('heippa') JavaScript-komennon, ja huomasin että kun yhden noista ylemmistä self.web.page().mainFrame().evaluateJavaScript -riveistä kommentoi pois, niin alin rivi toimi, ja kun taas kommentoi yhden pois niin alin rivi ei toiminut, ja kun taas kommentoi yhden pois niin taas toimi. Ihan kuin tuo suostuisi suorittamaan vain parillisen tai parittoman määrän noita JavaScript-komentoja tai jotain. Tai sitten se tukehtuu tuohon JQueryyn.

En ehdi tänään selvittää enempää. Palaan asiaan ehkä huomenna, tai viimeistään ylihuomenna. Laitoin liitteeksi oman "testiympäristöni" jos joku haluaa kokeilla. Tuon paketin kun purkaa johonkin hakemistoon ja komentaa "python sauna_testi.py" niin pitäisi päästä näkemään sen lataussivun.

[ylläpito on poistanut liitteen]

peran

  • Vieras
Vs: JavaScript/Python-osaajan taitoja kaivattaisiin
« Vastaus #8 : 06.01.11 - klo:03.57 »
En päässyt JQueryllä läpi. Varmaan onnistuisi jotenkin niilläkin, mutta se on minulle niin uusi asia, etten jaksa pilkkua viilailla sen kanssa.

On muuten ihan hirveetä debugata. Tulee ihan mieleen JavaScriptin alkuajat, kun debuggasi IE:llä ja yritti tehdä koodia NotePadilla.

Tässä kuitenkin koodia, joka läpäisee sun testiympäristöäsi. Saat kaunistella itse, jos jaksat, ja kuinka paljon jaksat.
Koodia: [Valitse]

Koodini on sitten GPL-lisensioitua. Tosin määrältään ei taida ylittää tekijänoikeusmäärää...
Koodia: [Valitse]
if url1.find("test.html", 0) != -1:
self.web.page().mainFrame().evaluateJavaScript("$('img[alt=Katso]').attr('src', '" + png_vlc + "')")
self.web.page().mainFrame().evaluateJavaScript("$('a[class=movetip]').parent().css('width', '95px')")
#self.web.page().mainFrame().evaluateJavaScript("$('a[href$=view=true]').parent().append('<a title=\"Siirrä tallenne\" href=\"http://www.fi/\"><img border=\"0\" alt=\"Siirrä\" src=\"" + png_wget + "\"></a>');")
js = "\n\
alert('ok?');var row = document.getElementsByTagName('tr');\n\
var wget = 'http://www.google.fi';\n\
if(!eienaalinkkeja) {\n\
for (var i = 0; i < row.length; i++) {\n\
var length = row[i].className.length;\n\
if (row[i].className.substring(length, length - 11) == 'programview') {\n\
var link = row[i].getElementsByTagName('a');\n\
for (var ii = 0; ii < link.length; ii++) {\n\
//alert(link[ii].title);\n\
if (link[ii].title == \"Katso tallenne\" && wget!=link[ii].href + '&wget=true') {\n\
wget = link[ii].href + '&wget=true';\n\
var parent = link[ii].parentNode;\n\
var child = document.createElement(\"a\");\n\
child.href=wget;\n\
child.title=wget;\n\
child.appendChild(document.createTextNode(\"Pannaan TALTEEN\"));//child.innerHTML=\"TALTEEN PANNAAN\";\n\
parent.appendChild(child);\n\
}\n\
// if (link[ii].href == 'http://www.fi/') {link[ii].href = 'http://www.mbnet.fi';}\n\
}\n\
}\n\
}\n\
}\n\
var eienaalinkkeja=true;\n\
alert(\"tuli\"+\",\"+parent);"
self.web.page().mainFrame().evaluateJavaScript(js)

Alertit sentään toimii tässäkin. Joo-o saattaa olla webminin bugeja, mutta ne nyt vaan on kierrettävä.  :P

Edit - Tämän pitemmälle en näe koodia, joten en osaa sanoa onko koodini toimivaa, vaikka sitä se ehkä on.

Edit 2 - Kun allertit ei enää toimi, on järjestelmä jossain aikaisemmassa kohdassa kohdannu JavaScript errorin.
« Viimeksi muokattu: 06.01.11 - klo:04.13 kirjoittanut peran »

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: JavaScript/Python-osaajan taitoja kaivattaisiin
« Vastaus #9 : 06.01.11 - klo:17.23 »
Muokkailin tuosta peranin koodista ratkaisun joka toimii testiversiossa ainakin siihen pisteeseen että enää ei jouduta WGET-nappulasta www.fi:osoitteeseen. En tiedä miten se käyttäytyy tositilanteessa, ja alkaako se lataamaan, jne., mutta sitä voi nyt kokeilla. Laitoin koko korjatun skriptin taas siihen aiempaan viestiini.

Se miten tuo toimi ennen oli että se ensin loi ne WGET-linkit JQuery-komennolla, ja laittoi jokaisen linkin osoittamaan väliaikaisesti osoitteeseen www.fi, ja sitten heti perään se etsi ne juuri luomansa nappulat ja vaihtoi osoitteet oikeaksi. Tämä jälkimmäinen vaihe oli lakannut toimimasta. Nyt korjatussa versiossa koko homma tehdään yhdellä kerralla, ja puhtaalla JavaScriptillä ilman JQueryä.

kestosippi

  • Käyttäjä
  • Viestejä: 185
    • Profiili
Vs: JavaScript/Python-osaajan taitoja kaivattaisiin
« Vastaus #10 : 06.01.11 - klo:18.00 »
Mahdottoman isot KIITOKSET "Tommi S." ja "peran" sekä tietysti alkuperäiselle skriptinvääntäjälle "pekko666".

Nyt se toimii hienosti. Tallenteet voi katsella tuosta vlc-napista klikkaamalla ja halutessaan tallenne alkaa latautumaan taustalla toimivalla wget-imuroinnilla siihen kansioon, joka tossa skriptin alussa määritellään (/video/saunavisio).

a-Risto

  • Käyttäjä
  • Viestejä: 1
    • Profiili
Vs: JavaScript/Python-osaajan taitoja kaivattaisiin [Ratkaistu]
« Vastaus #11 : 22.02.11 - klo:21.40 »
Koetin kopioida yo. olevan Elisa Viihde -scriptin, mutten saanut sillä toimimaan wget -latausta.
Loggaudun siis Elisan sivuille (http://www.elisaviihde.fi) enkä Saunalahden sivuille.

Elisan sivuilla kaikki muu vaikuttaisi toimivan hyvin, mutta ei wget (minulla ei edes näy wget-ikonia). Käyttöjärjestelmänä on Ubuntu 10.10

Jos tämä onkin jo ratkaistu, niin voisiko joku vielä laittaa koko scriptin sivuille, että varmasti ymmärtäisin kopioda oikean.

Kiitoksia!
 

marvinpa

  • Käyttäjä
  • Viestejä: 1
    • Profiili
Vs: JavaScript/Python-osaajan taitoja kaivattaisiin [Ratkaistu]
« Vastaus #12 : 30.06.11 - klo:19.49 »
Näyttää tuo elisaviihteen sivu muuttuneen täysin. Itse en ole vielä ehtinyt tutkia tarkemmin saako tuon phyton/webkit ohjelman korjattua. Tuo mozilla vlc plugin on valitettavan avuton.
Saisikohan siitä helposti version joka vain avaisi videon itse vlc soittimeen (ei siis embedattuna)