Filmdatenbank-Funktionen

  • ich arbeit zZ an einer FilmDatenbank für meine Bedürfnisse.
    Als kleines BonBon würde ich nun gerne noch paar Sachen da einfügen.

    Schön wäre es, wenn mir im GUI (Platz ist schon reserviert), ein Bild des Covers angezeigt würde. Dieses könnte man ja gut aus dem Internet bekommen, fragt sich nur wie! Hat jmd ne Idee?
    Zusätzlich würde ich gerne bei entsprechendem Aufruf auf verschied. Seiten verlinken, wo dann Cast, Story, etc enthalten sind.

    Aktuell habe ich das mal testweise mit imdb gelöst (shellexecute, da ich FF verwende und nicht umständlich die FF.au3 noch einbinden will *g*):

    [autoit]

    Func _Get_Info()
    $GetItem = _GUICtrlListView_GetItemText($List, _GUICtrlListView_GetSelectedIndices($List))
    ShellExecute("http://www.imdb.com/find?s=all&q=" & $GetItem & "&x=0&y=0")
    EndFunc

    [/autoit]

    Das ist jetzt nur ganz billig gelöst, wie würde sowas zB. bei ofdb funktionieren?

  • ähhm ok ich geb dir jetzt einfach mal ne lösung wie ichs machen würde und zwar würde ich per tcp das paket an den server senden, und mit dem source code dann weiter arbeiten.

    Wenn du die Suche startest wird folgendes Paket an den Server gesendet:

    Spoiler anzeigen

    Matrix ist dann der Suchname und Titel die Auswahl

    Mit der UDF von GTA _INETGETSORUCEPOST()
    kannst du dir dann den source holen.

    3 Mal editiert, zuletzt von I3iLLiG (26. November 2008 um 13:22)

  • Hi,

    ich habe auch angefangen eine Movie DB zu machen. Und ich hole mir die Bilder aus imdb.. Allerdings hole ich die Cover nur beim anlegen des Films und speicher die dann in der sql DB. Momentan nur den Pfadnamen zur der Datei..

    Ich lade das bild nicht immer neu, sondern dann später lokal von der Platte.
    Ich hol mir die Bilder auch mit dem IE, weil ich die FF Funktionen nicht mag.

    ofdb kannte ich noch nicht.. aber schaut ganz gut aus...

    was willst du denn genau wissen? Der Link zu den Filmen scheint ganz einfach zu sein:
    http://www.ofdb.de/film/28980,Der-Herr-der-Ringe-Die-Zwei-Türme

    schöne Grüße
    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Hey,

    das mit den Bilder lokal ist natürlich auch ne super idee, kannst du mir die funktion mal zeigen oder zur verfügung stellen? würde natürlich viel kleinen traffic sparen und die bilder wären schneller zu sehen.

    auf den ersten blick sehen die links easy aus, aber die zahl im link, die kenne ich ja nicht ... von daher könnte ich nicht einfach ofdb.de\film\Filmname aufrufen ;)

  • Hiermal über tcp connect an den source code und dan mit _StringBetween nach den daten absuchen

    Spoiler anzeigen
    [autoit]


    $Suchwort = "Matrix"
    $Einstellung = "Titel"

    [/autoit] [autoit][/autoit] [autoit]

    $source = _ofdbanfrage('SText='&$Suchwort&'&Kat='&$Einstellung)
    msgbox(0,"",$source[0])
    FileWrite("sc.html",$source[1])

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Function Name: _INetGetSourcePost()
    ; Description: Gets the source from an URL without writing a temp file and you can send a Post.
    ; Parameter(s): $sURL = The URL of the site.
    ; $sPost = The Post to send
    ; Requirement(s): -
    ; Return Value(s): On Success - Return a array with $aReturn[0] = Backheader and $aReturn[1] = Sourcecode
    ; On Failure - 0 and sets @ERROR
    ; @error = 1: Post or URL is nothing
    ; @error = 2: Error by RegularExpression
    ; @error = 3: $sHost or $sHttp1 is nothing
    ; @error = 4: Can not get IP of Host
    ; @error = 5: Can not connect to host
    ; @error = 6: Nothing can be send
    ; @error = 7: Connection abborted while receiving
    ; Author(s): GtaSpider
    ;
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _ofdbanfrage($sPost)
    Local $iSocket, $sHeader, $sRecv, $iIP, $aRegExp, $iErr,$iSend,$aReturn[2]


    $sHeader = "POST http://www.ofdb.de/view.php?page=suchergebnis HTTP/1.1" & @CRLF & _
    "Host: http://www.ofdb.de" & @CRLF & _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.3 (de) (TL-FF)" & @CRLF & _
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & _
    "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" & @CRLF & _
    "Accept-Encoding: gzip,deflate" & @CRLF & _
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & @CRLF & _
    "Keep-Alive: 300" & @CRLF & _
    "Connection: keep-alive" & @CRLF & _
    "Referer: http://www.ofdb.de/view.php?page=start" & @CRLF & _
    "Cookie: ofdb_theme=0; ofdb_ret=view.php%253Fpage%253Dstart" & @CRLF & _
    "Content-Type: application/x-www-form-urlencoded" & @CRLF & _
    "Content-Length: " & StringLen($sPost) & @CRLF & @CRLF & $sPost


    TCPStartup() ;If not already done
    $iIP = TCPNameToIP("www.ofdb.de")
    If $iIP = '' Or StringInStr($iIP, ".") = 0 Then Return SetError(4, 0, 0)
    $iSocket = TCPConnect($iIP, 80)
    If @error Or $iSocket < 0 Then Return SetError(5, 0, 0)

    $iSend = TCPSend($iSocket, $sHeader)
    If @error Or $iSend < 1 Then Return SetError(6, 0, 0)


    While 1
    $sRecv = TCPRecv($iSocket, 1024)
    $iErr = @error
    If $sRecv <> '' Then
    While 1
    $sRecv &= TCPRecv($iSocket, 1024)
    If @error Then ExitLoop 2
    WEnd
    EndIf
    If $iErr Then Return SetError(7,0,0)
    WEnd

    $aReturn[0] = StringLeft($sRecv,StringInStr($sRecv,@CRLF&@CRLF)-1)
    $aReturn[1] = StringTrimLeft($sRecv,StringLen($aReturn[0])+4)
    Return $aReturn
    EndFunc ;==>_INetGetSourcePost

    [/autoit]
  • also ich habe zu vielen filmen auch ico-dateien ... die ich verwenden könnte, dann müsste ich nur da bilder aus dem inet holen, wo ich keine icons zu habe.

    ist es denn möglich, die dateien in der db zu speichern, als vorschaubild o.äh?
    ansonsten würde der Programm-Ordner ja ziemlich groß werden, weil ich die ganzen icons da reinpacken muss ...

  • Hi,

    Sorry bin noch nicht dazu gekommen die Funktion aus meine Skript zu basteln. Meine Prommierweise ist meistens ziemlich chaotisch :whistling:

    und ja Du kannst die icons direkt in der db speichern.. Eine column erzeugen mit den Datentyp BLOB.

    http://effbot.org/zone/sqlite-blob.htm

    schöne Grüße
    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---