TV Planer

Du hast eine Idee für ein Projekt?
Antworten
Sango

Moin

Nachdem vor kurzem mein bisheriger TV-Planer 'TV Genial' zum
Kostenpflichtigen Programm wurde und immer noch nur als
Windows-Programm vorliegt, da kam mir die Idee sowas koennte
man doch mit Python Plattform-Unabhängig gestaltet.

Hat jemand schon erfahrung mit sowas? Oder einen Vorschlag
wo man da am besten beginnen koennte?
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Was ist denn ein "TV-Planer"? Da kann ich mir nichts drunter vorstellen...

Jörg
Sango

Eine Digitale Fernsehzeitschrift im grunde. Nur halt mit all den anehmlichkeiten die ein Programm so bietet, also Automatische Erinnerung an Sendungen, Filter fuer bestimmte Filme (z.B. alle Filme mit Schauspieler x oder aus Land y oder von Genre z).
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi,
das Problem wäre, die Informationen irgendwoher zu bekommen. Also müsstest du irgendeine Informationsquelle im Internet finden, dann ließe sich das bestimmt alles machen (auch das automatische extrahieren Infos). Wenn du das ganze graphisch machen willst gibt es recht viele Möglichkeiten, ich würde TKinter nehmen (kenn ich am besten :) ).

Alles in allem ist das aber ein sehr umfangreiches und zeitaufwendiges Projekt, darüber musst du dir klar sein :roll: :wink:
Sango

Milan hat geschrieben: das Problem wäre, die Informationen irgendwoher zu bekommen. Also müsstest du irgendeine Informationsquelle im Internet finden, dann ließe
Ich hab bereits ein Perl-Script das von TV-Movie.de das Proramm laedt und ins XMLTV-Format wandelt, also das zumindest duerfte vorerst kein Problem darstellen.
Milan hat geschrieben: Wenn du das ganze graphisch machen willst gibt es recht viele Möglichkeiten, ich würde TKinter nehmen (kenn ich am besten :) ).
Das ist mit der Hauptgrund weshalb ich hier frage ;)
Ich spiel mit Python noch nicht übermaessig lange rum und hab von dessen GUI-Faehigkeiten keinerlei Ahnung, deshalb will ich erst mal wissen wie brauchbar eine Python-Lösung waere

Mein bisheriges Konzept sieht eine sehr komplexe, komplett Dynamische GUI vor. Wie gut sieht es da denn bei Python mit der Performance aus? Und wie weit gehen die möglichkeiten generell?

Und was mich m omentan noch interessiert waeren die moeglichkeiten XML->Python.
Milan hat geschrieben: Alles in allem ist das aber ein sehr umfangreiches und zeitaufwendiges Projekt, darüber musst du dir klar sein
Das ist mir schon klar, deshalb will ich auch vorher erst mal ausloten wie umfangreich das wird :9
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Also für XML brauchst du dir keine Sorgen zu machen. Ich hab zwar noch nicht damit gearbeitet, aber Python bietet eine breite Unterstützung für XML an (Module 'xml.dom', 'xml.dom.minidom', 'xml.dom.pulldom', 'xml.parsers.expat', 'xml.sax', 'xml.sax.handler', 'xml.sax.saxutils', 'xml.sax.xmlreader', 'xmllib', 'xmlrpclib').

Zu den Gui: mit Tkinter ist prinzipiell sehr viel bis fast alles machbar, der Nachteil an TKinter ist aber, dass es relativ langsam ist. Schließlich ist es ja nur eine Ausweichmöglichkeit von Tcl auf Python, dafür aber recht gut handhabbar. Am besten du schaust dir mal diesen Thread an, da sind die häufigsten GUI's in Python drin aufgelistet.
ertlpott
User
Beiträge: 44
Registriert: Montag 14. April 2003, 16:05

kurze Frage dazwischen:
Was ist eine GUI? :oops:
Es ist zwar sehr oft die Rede davon. Aber irgendwie geht da nirgends hervor was das ist.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi Erplot, das ist die Abkürzung für Graphical User Interface, also ein Programm, dass mit Fenstern arbeitet ;). Um das zu programmieren, brauchst du kleine Hilfsmittel, zum Beispiel TKinter, QT oder WXpython.
Kartoffel
User
Beiträge: 66
Registriert: Montag 7. April 2003, 17:08

Milan hat geschrieben:Hi Erplot, das ist die Abkürzung für Graphical User Interface, also ein Programm, dass mit Fenstern arbeitet ;).
Eine Gui muss nicht unbedingt Feinster haben und ein Dos-Fenster in Windows hat auch (ein) Fenster und trotzdem keine Gui!
Gui ist einfach ein Grafisches Interface, das heißt, alles was nicht nur aus Text besteht fällt unter diese Kathegorie, egal ob Fenster oder nicht.
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

Hi ho!
Keine schlechte Idee, dein Programm...
Hab schon oft Filme vergessen und da ich mindestens jeden 2. Tag vorm PC hänge, wär das ne gute Lösung, damit ich Matrix das nächste mal nich auch noch verpasse :lol:
Ich könnte mir sogar vorstellen, die grafische Oberfläche mitzugestalten.
Bisher habe ich nur Erfahrungen mit Tkinter, aber was nich is kann ganz schnell noch werden!
Ich kann dir die Fensterhintergründe, Effekte, Sounds, usw. malen/gestalten/aufnehmen/saugen/...
Nur die Schnittstelle zwischen Internet & Prog. stell ich mir ein bischen schwierig vor.


MFG,
Flo
cerbarus
User
Beiträge: 1
Registriert: Dienstag 26. August 2003, 20:44
Wohnort: Köthen

Hallo, bin eben erst auf diesen Tread gestossen.

Wie ist der Stand des Projektes?


Tschau
Cerbarus
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

Hi Sango,
ich hätte da mal die Bitte, dass du mir den Script schickst oder zeigst...
Ich bin sehr daran interessiert, da ich überlege deine Idee umzusetzen!

Andererseits gibt es solch ein Programm jedoch schon: TV Movie Clickfinder :wink:

Ich hoffe, du kannst mir weiterhelfen,
Florian
Gast

Also ich hab bereits vor längerem eine Funktion geschrieben die die infos von www.tv-today.de holt...

Mal sehen ist schon alt aber es Funktioniert noch (war damals noch eher python anfänger gibt sicher stellen die sich verbessern lassen)

Code: Alles auswählen

import urllib,re

def get_tvtoday(url):
    a=urllib.urlopen(url).readlines()
    ret=[]
    z=1
    for i in a:
        if '\t\t<td valign="top" bgcolor="#a8a8a8"><span class="text-grau">' in i:
            t=strip_tags(i.split('<span class="text-grau">',1)[1].split("</span></td>")[0]).replace("&"," ").strip() #time
            d=a[z].replace("\t","")
            e=a[z+1].replace("\t","")
            ret.append("".join(re.split("<.*>",t.strip()))+": "+strip_tags(d).strip()+" "+strip_tags(e).strip()) #infos

        z+=1
    return ret

def ask_tvtoday(uhr=None,zeit=None,uhrzeit="jetzt",sender="HS",sparte="alle",tag="heute",suchbegriff=None,suche=None):
    if uhr: uhrzeit=uhr
    if zeit: uhrzeit=zeit
    if suche:
        suchbegriff=suche
    if uhrzeit!="jetzt":
        uhrzeit="Ax"+uhrzeit.split(".")[0].split(":")[0].strip()
    try:
        tag=int(time.strftime("%w",time.localtime()))+eval(tag)
    except:
        if tag=="heute": tag=0
        elif tag=="morgen": tag=1
        elif tag=="gestern": tag=8
        elif "vorgestern" in tag): tag=len(tag.split("vor"))
        elif "\xfebermorgen" in tag: tag=len(tag.split("\xfeber"))
        else:
            wochentag=int(time.strftime("%w",time.localtime()))
            t=dict([ ["1","Montag"],
                     ["2","Dienstag"],
                     ["3","Mittwoch"],
                     ["4","Donnerstag"],
                     ["5","Freitag"],
                     ["6","Samstag"],
                     ["7","Sonntag"] ]
                   )
            s={}
            for a,b in t.items():
                s[b]=a
            wochentag=t[time.strftime("%w",time.localtime())]
            wochentagn=time.strftime("%w",time.localtime())
            if 1:
                tag=s[tag]
                t=int(tag)
                w=int(wochentagn)
                if t>=w:
                    tag=t-w
                else:
                    tag=7-w+t
            #except:
            #    return []
    sender=sender.upper()
    if sender=="RTL2":
        sender="RTL 2"
    if sender=='SAT1':
        sender='SAT 1'
    if sender=='3 SAT':
        sender='3SAT'
    if sender=='SUPER RTL':
        sender='S-RTL'
    if sender=='S RTL':
        sender='S-RTL'
    if sender=='PRO7':
        sender='PRO 7'
    if sender=='TM3' or sender=='9LIVE':
        sender='NEUNLIVE'
    if sender=='KABEL1':
        sender='KABEL 1'
    if not suchbegriff:
        return get_tvtoday("http://www.tvtoday.de/tv/programm/programm.php?ztag=%s&sparte=%s&uhrzeit=%s&sender=%s"%(tag,sparte,uhrzeit,sender.replace(" ","+")))

    return get_tvtoday("http://www.tvtoday.de/tv/programm/programm.php?ztag=%s&sparte=%s&uhrzeit=%s&sender=%s&suchbegriff=%s"%(tag,sparte,uhrzeit,sender.replace(" ","+"),suchbegriff.replace(" ","+")))

def strip_tags(tags,joiner=" "):
    import re
    return joiner.join(filter(lambda x:x!="",re.split("<[\w/]+[^<>]*>",tags))).strip()
Viel Spaß damit :)
Gast

Moin moin @ll,
ich hätte da auch mal ne Frage: IST DAS HIER EIN FORUM, IN DEM MANN/FRAU ERNSTHAFTE DINGE BESPRICHT? oder möchtet ihr eher die Leser ver... . Ich hätte euch ja echt Unterstützung angeboten, fühle mich aber durch einige 'sehr schlaue' Kommentare etwas angegriffen [z.b.GUI] _ es gibt halt auch Programmerehre && wenn jemand im Forum eine Frage stellt, sollte diese auch beantwortet und nicht ins Lächerliche gezogen werden. #schade eigentlich; __da bleib ich wohl lieber fern __.

Ein Tipp mal los werd: Da hier ja jeder sein eigenes Ding macht, denkt doch mal Teamarbeit nach - ist wesentlich effektiver _ ein modul für jeden Interessenten und es endet mächtig.

with best regards
micha
Antworten