GrooveLoad - ein Grooveshark Downloader

  • Danke für eure vielen Antworten mit Verbesserungsvorschlägen und Lösungen dafür :thumbup:
    Mittlerweile hat sich Grooveshark schon fast wieder vollständig eingependelt, zwischendurch hat's fast nur 500er Fehler vom Server gehagelt.
    Ich habeVersion 1.1.0.0 rausgebracht mit einigen Änderungen:
    - Suche mit Enter möglich
    - Lieder mit Doppelpunkt im Titel/Interpreten/Album können jetzt heruntergeladen werden
    - Verbindungsversuche werden mehrfach ausgeführt (sinnvoll, wenn die Server instabil sind)
    - Fehler gefixt, bei dem Proxyeinstellungen nicht verwendet wurden
    - Namensgebung der Dateien verbessert, sodass jetzt z.B. nach Interpreten sortiert werden kann (hierzu bitte den Hilfetext per Klick auf das Fragezeichen lesen)
    - ProgressBar hört jetzt nach Download auf durchzulaufen
    - Einige weitere kleine Korrekturen

    Die Sortierung in der Liste der Suchergebnisse habe ich nicht vergessen, die kommt noch.

  • Ganz große Klasse!
    Gefällt mir richtig gut, vor allem weil Grooveshark richtig viele alte Lieder hat :)
    Danke danke, jetzt weiß ich was / wo ich alte Musik in guter Qualität herbekomme :)
    €:
    Noch etwas was mir auf fiel:
    Das Lied "Månemannen" von "Vamp" wird als "M\u00e5nemannen" angezeigt.... wenn man es richtig eingibt findet er nix, aber wenn man es eben als "M\u00e5nemannen" eingibt findet er das... Könntest du automatische Unicode "Übersetzung" einbauen? ;)
    €2: Das ganze wird dann auch seltsam gespeichert, weil "M\" einen Ordner erstellt und alles dahinter dann in dem Ordner ist xD
    €3: Eventuell auswählen "Nach Alben speichern" oder "Nach Interpreten speichern", weil das durchaus einiges an "Sortierarbeit" spart :D

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

    3 Mal editiert, zuletzt von Xorianator (22. Dezember 2013 um 21:49)

  • So, das Problem mit den Sonderzeichen sollte jetzt in Version 1.1.1.0 behoben sein. Wie man eine Unicode Konvertierung mit StringFormat machen kann, ist mir allerdings schleierhaft ?(
    Ich habe jetzt 2 kleine Funktionen für die Konvertierung geschrieben. Wen es interessiert:

    [autoit]

    $xy = toUnicode("Månemannen")
    MsgBox (0,"",$xy)
    MsgBox (0,"",fromUnicode($xy))

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

    Func toUnicode ($var)
    $ausgabe = ""
    For $v = 1 To StringLen ($var)
    $ausgabe = $ausgabe & "\u00" & hex(Asc (StringMid($var,$v,1)),2)
    Next
    Return $ausgabe
    EndFunc

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

    Func fromUnicode ($var)
    While StringInStr ($var,"\u00") <> 0
    $replace = StringMid ($var,StringInStr ($var,"\u00")+4,2)
    $var = StringReplace ($var,$replace,Chr (Dec ($replace)),1)
    $var = StringReplace ($var,"\u00","",1)
    WEnd
    $var = StringReplace ($var,"","")
    Return ($var)
    EndFunc

    [/autoit]


    Das Forensystem erlaubt es mir aus irgendeinem Grund nicht, einen Schrägstich im Code zu schreiben. Zeile 19 muss so heißen: $var = StringReplace ($var,"\","")

    @Xor: Das Sortieren nach Interpreten ist übrigens bereits möglich. Einstellungen > Downloadeinstellungen > "Muster für Namensgebung und Sortierung der gedownloadeten Dateien"

  • Moin,
    nettes Spielzeug :).

    Bei mir tritt ein Problem in der AUflistung der "beliebten Lieder". Dort werden immer mal wieder numerisch benannte JPGs eingetragen die aber offensichtlich keine sind. Am Ende ist es dann doch eine MP3. Allerdings verzieht sich dadurch die gesammte Listview um eine Zeile.

    Lasst Bilder sprechen ....
    autoit.de/wcf/attachment/23790/
    Man beachte, das sich Robin Thicke nicht nackt auf einer Abrissbirne räckelt.

    Edit:
    Das Problem tritt auch ohne das Vorhandensein dieser "JPGs" auf.
    autoit.de/wcf/attachment/23791/

  • Hey danke für den Hinweis mit dem Speicherort ;)

    Code
    <Album>\<Titel>


    habe ich jetzt gemacht :)

    Ein Problem habe ich noch: Wenn das Programm länger im Hintergrund läuft und ich dann was downloaden will, dann kommt die Fehlermeldung:

    [autoit]


    If $SessionID = 1 Or $CommunicationToken = 1 Then
    MsgBox (16,"Grooveshark Downloader","Fehler beim Abfragen der Session ID und des Communication Tokens.")
    Exit
    EndIf

    [/autoit]


    (Im Code in Zeile 133)

    Muss der nach längerer Zeit erneuert werden? Das sollte man irgendwie einbauen :)
    Frohe Weihnachten

    €: "Fehler beim abrufen der Streamdaten"? Kam grad bei dem Versuch ein ganzes Album runterzuladen... Kannst du eigentlich irgendwie eine Checkbox für Alben machen? :) :thumbup:

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

    Einmal editiert, zuletzt von Xorianator (24. Dezember 2013 um 00:09)

  • Moin moin. Ja, du hast recht, nach einer Zeit läuft die Sitzung aus. Ich bin da schon seit längerer Zeit am rumprobieren, wann die Sitzung ausläuft und ob sie durch z.B. eine Suchanfrage verlängert wird. Ich habe jetzt aber mal Version 1.1.3.0 hochgeladen, die einfach nach 9 Minuten - egal was in der Zwischenzeit gemacht wurde - eine neue Sitzung startet. die 9 Minuten sind warscheinlich zu niedrig angesetzt und vl. gibt es auch eine Möglichkeit, die Sitzung zu verlängern satt eine neue zu starten (da muss ich nochmal mit 'ner Proxy zwischen Browser und Webseite lauschen), aber so wie es jetzt ist, funktioniert es mal auf jeden Fall und zu der Fehlermeldung sollte es nicht mehr kommen.
    Was den "Fehler beim Abrufen der Streamdaten angeht: Der taucht immer dann auf, wenn der Server nach dem vierten Versuch immer noch keine Daten rausrückt, wo der Stream liegt, sondern die Verbindung mit einem 500er Fehler zurückweist. Da kann ich leider nicht viel machen, vor dem Update seitens Grooveshark gab es diese vielen 500er Fehler nicht. Ich kann das Programm höchstens so umschreiben, das dann die Downloadliste erhalten bleibt.

    Eine Suche nach Alben ist bereits angedacht, wird auch nicht schwer umzusetzen zu sein, da Grooveshark jedem Album intern eine Nummer gibt und man so z.B. verschiedene "Greatest Hits" Alben voneinander unterscheiden kann. Die Suchergebnisse kann man ja dann einfach alle markieren und zur Downloadliste hinzufügen. Allerdings muss das warten bis Weihnachten rum ist ^^

  • Also irgendwas läuft bei "Verbindung wird nach 9 Minuten erneuert" in der neuen Version schief. Wenn das passiert und man dann einen neuen Titel zur Downloadliste hinzufügt kommt eine "Array incorrect size" Fehler und das Programm stürzt komplett ab.

    Gut wäre auch noch wenn es wie bei der Suchliste auch bei der Downloadliste einen Button gibt um alle Lieder darin zu markieren.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Komisch. Ich kann den Fehler nicht reproduzieren. Also du hast schon ein paar Titel in der DL Liste gehabt, hast etwas gesucht, das Programm hat die Verbindung erneuert, dann wolltest du etwas aus der Suchliste zur DL Liste hinzugefügt und es kam ein Array Fehler?
    Kannst du evtl. nochmal genau das machen, was beim Absturz passiert ist und mir die genaue Fehlermeldung mit Zeilenangabe schicken? Du kannst dazu in Zeile 179 natürlich die Zeit ändern, dass du keine 9 Minuten warten musst.

  • So ich hab jetzt das ganze nochmal reproduziert und hat aber scheinbar doch nichts mit dem reconnect zu tun sondern irgendwie kommt die Liste durcheinander. Und zwar immer exakt an der selben Stelle.

    [Blockierte Grafik: http://s1.directupload.net/images/131224/3a6hcm65.png]

    Hier noch der Fehler in Scite:

    Zitat

    C:\Users\error\Desktop\Grooveshark Downloader\Grooveshark.au3 (449) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    $SongInfosFuerDLListe[$a][0]=$SongInfo[$i][0]
    $SongInfosFuerDLListe[$a][0]=^ ERROR

    Ich habe folgende Lieder in dieser Reihenfolge gesucht und hinzugefügt und immer kommt der Fehler dann nach "BASTILLE-THINGS WE LOST IN THE FIRE" wenn es zu "SUNRISE AVENUE-LIFESAVER" geht. Da sind irgendwie die "BASTILLE-THINGS WE LOST IN THE FIRE" noch in der Liste und es kommt zum Arrayfehler.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (24. Dezember 2013 um 16:04)

  • Och nein, ich weiß, wo das Problem liegt. Gibt mal "timber" ein und suche. Und dann suche nach was anderem und schaue dir den ersten Eintrag an? Das Ergebnis kommt noch von der Suchanfrage vorher. Ich hatte das Problem selbst schon beim Testen, damals mit "Wrecking Ball" als Suchanfrage, hier tritt (bei mir) das Problem allerdings nicht mehr auf. Das komische. Vor jeder neuen Suchanfrage wird die gesammte Liste mit Suchergebnissen gelöscht - duch den Befehl _GUICtrlListView_DeleteAllItems ($GUI_ListeSuchergebnisse) in Zeile 380. Trotzdem bleibt bei der Suchanfrage "timber" komischerweise 1 Eintrag erhalten und der bringt im folgenden die ganze Liste durcheinander. Ich bin diesbezüglich mit meinem Latein am Ende. Ich habe keine Ahnung warum _GUICtrlListView_DeleteAllItems nicht richtig funktioniert und warum genau das eine Lied, das durch nichts aus der Reihe tanzt, erhalten bleibt. Ich werde diesbezüglich mal ein Thema in Hilfe und Unterstützung eröffnen.

  • So, das Problem gab es nur in Autoit Version 3.3.8.1 und kleiner und sollte jetzt in Version 1.1.4.0 bei keiner AutoIt Version mehr auftreten.
    Danke übrigens für deine ausführliche Fehlerbeschreibung!

  • In der neuesten Version konnte ich "chip"s Problem reproduzieren, aber diesmal wurde der letzte Eintrag noch in der Download Liste angezeigt ?(

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Weiß ich ehrlich gesagt nicht mehr, konnte den Fehler heute auch nicht reproduzieren.
    Vielleicht einen Console Log in das Programm einbauen, aber in Zukunft achte ich drauf :)

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • So, es gibt mal wieder ein etwas größereres Update auf Version 1.2.0.0. Die Änderungen sind:
    - GUI etwas vergrößert
    - Mehr Optionen zum Markieren der Dateien in den Suchergebnissen und erstmals auch in der Downloadliste
    - Suche nach Album und Interpreten möglich (per Rechtsklick auf Suchergebnis)
    - Progressbar läuft beim Download nicht einfach durch, sondern zeigt den Fortschritt an
    - GUI wird während des Downloads nicht einfach deaktiviert, sondern die Elemente ausgegraut, die GUI bleibt verschiebbar
    - Elemente der GUI werden bei Suchanfragen ausgegraut
    - Deutliche Beschleunigung des Downloads durch Erhöhung von $iNumberOfBytesToRead bei _WinHttpReadData auf standartmäßig 150000 (veränderbar in den Verbindungseinstellungen)
    - Abfrage des Geheimworts (von meinem Webspace) erfolgt jetzt auch über einen Proxyserver, sofern dieser eingestellt ist.
    - Kleinere Bugfixes
    - Kleinere Verbesserungen