Du bist nicht angemeldet.
Hi,
ich habe ein Plugin für fboom.me geschrieben!!
#!/bin/ash
DEBUG_GET=1
# fix Captcha-Image by genuK/genuk@gmx.net/27.07.2014
# break und continue => beendet Funktion und liefert an die darunterliegende while Schleife das break|continue aus
# return => beendet Funktion und fuehrt den Prozess an der aufgerufenen Stelle weiter aus
errorHandling_fboom_me(){
local f=$1
if grep -qi "This server is in maintenance mode| our store is not available, please try later|>Not Found<" $f; then
errmsg "Server unter Maintenance"
waiting 600 && continue
elif grep -qiE "error occurred while processing your request|File not found or deleted|>Sorry, this file is blocked or deleted|Downloading blocked" $f; then
errmsg "Datei nicht mehr vorhanden"
return 1
elif grep -qi "File size to large|Only <b>Premium</b> access<br>|only available to premium|Free user can\'t download large files" $f; then
errmsg "Datei kann nur von Premium Usern geladen werden"
return 1
elif grep -qi "Please wait" $f; then
errmsg "Downloadlimit erreicht"
{ needReconnect 30; continue; }
elif grep -qi ">Premium download</button>" $f; then
errmsg "Du lädst schon von diesem Hoster"
waiting 0 10
break
fi
}
fboom_me() {
local c=$tmp/dl.cookie.txt f=$tmp/dl.response.htm f2=$tmp/dl.response2.htm
local finalurl filename filesize sizeunit fileid waittime slowid urlpart hour minute second
local baseurl="http://fboom.me"
# fileid=$(echo $param | sed -n 's|.*cc\/file\/\([^ ]*\).*|\1|p')
# if [ -z "$fileid" ]; then
# errmsg "Keine FileID extrahiert"
# return 1
# fi
while [ $try -lt $retries ]; do
try=$(($try+1))
# Hauptseite
GET "$param" "$f" "--cookie-jar $c" "GET1" || { needReconnect 30; continue; }
errorHandling_fboom_me $f
# request File Information
if grep -q '<title>FileBoom\.me - Error</title>';then
errmsg "Dateistatus unbekannt"
return 1
fi
filename=$(grep -A 1 "icon-download" $f | sed -n 's|.* \([^<>"]*\).*|\1|p')
filename=${filename:1}
if [ -z "$filename" ];then
grep -q "This file is no longer available" $f && errmsg "Datei nicht mehr verfügbar" && break
errmsg "Konnte Dateinamen nicht bestimmen" && continue
fi
notalreadyLoaded "$filename" || return
filesize=$(grep -A 1 "File size:" $f | sed -n 's|.*File size: \([^<>"]*\).*|\1|p')
[ -z "$filesize" ] && filesize=$(sed -n 's|.*>Size: \([^<>\"]*\).*|\1|p' $f)
[ -z "$filesize" ] && grep -q '<b>File size:</b>.*<br>' $f && {
errmsg "Datei nicht mehr vorhanden"
return 1
}
#TODO: convert size unit MB GB ... 1 000.0 MB => bytes
#filesize=$(echo $filesize | tr -d ' .')
slowid=$(grep "data-slow-id" $f | sed -n 's|.*id="\([^ "]*\).*|\1|p')
[ -z "$slowid" ] && {
errmsg "slowid failed: Plugin defekt"
return 1
}
sleep 3
GET "$param" "$f" "--cookie $c -d slow_id=$slowid" "GET2" || { needReconnect; continue; }
errorHandling_fboom_me $f
if grep -qi "captcha-form" $f; then
# Captchas kommen anscheinend nicht immer
# deleteComment $f
# extractForm $f "captcha-form" || continue
local data="free=1&freeDownloadRequest=1&uniqueId=$slowid&"
if grep -q '/file/captcha.html?v' $f ; then
print "=== Detected captcha method \"Captcha image\" ==="
# extract the captcha link
local capurl=http://fboom.me"$(grep '/file/captcha.html?v' $f | sed -e 's/.*src=\"\([^\"]*\)\".*/\1/g')"
print "=== Extracted captcha link is: $capurl"
# get the captcha image
local capfile=$tmp/dl.captcha.jpg
curl -s --cookie $c "$capurl" -o $capfile
set_captcha_solution "$capfile" || continue
rm -rf $capfile
data=$data"CaptchaForm%5Bcode%5D="$CAPTCHA_STRING
elif grep -qE 'api\.recaptcha\.net|google\.com\/recaptcha\/api' $f.form ; then
print "=== Detected captcha method \"Re Captcha\" ==="
captcha_solution $f.form || return
[ -z "$CAPTCHA_STRING" ] && continue
data=$data"op=CaptchaForm%5Bcode%5D=&"$CAPTCHA_RESPOND
else
errmsg "Kein Captcha gefunden"
fi
GET "$param" "$f" "--cookie $c -d $data" "GET3" || { needReconnect; continue; }
if grep -qE 'api\.recaptcha\.net|google\.com\/recaptcha\/api|\/file\/captcha\.html' $f; then
captcha_wrong
continue
else
captcha_correct
fi
fi
errorHandling_fboom_me
waittime=$(grep -i "class=\"tik-tak\"" $f | sed -n 's|.*\"tik-tak\">\([[:digit:]]*\).*|\1|p')
[ -z "$waittime" ] && waittime=$(sed -n 's|.*<div id=\"download-wait-timer\">[^0-9]*\([[:digit:]]*\).*|\1|p' $f)
[ -z "$waittime" ] && errmsg "Konnte keine Wartezeit ermitteln" && waittime=60 # Fehler werfen oder weitermachen?
waiting "$waittime"
# Bekommen wir hier schon unseren DL Link?
urlpart=$(grep -i -m1 "To download this file with slow speed" $f | sed -n 's|.*href="\/\([^ "]*\).*|\1|p')
[ -z "$urlpart" ] && urlpart=$(grep window.location.href $f | sed -n 's|.*href.=..\/\([^ ]*\).*|\1|p' | tr -d "\';")
# Leider nein, es muss noch eine Seite geladen werden
#? if [ -z "$urlpart" ]; then
GET "$param" "$f" "--cookie $c $AJAX_REQUEST -d free=1&uniqueId=$slowid" "GET4" || { needReconnect; continue; }
errorHandling_fboom_me
if grep -qi -m1 "please wait.*to download this file" $f; then
hour=$(grep -i -m1 "please wait.*to download this file" $f | sed -n 's|.*wait.\([[:digit:]]*\):\([[:digit:]]*\):\([[:digit:]]*\).*|\1|p')
minute=$(grep -i -m1 "please wait.*to download this file" $f | sed -n 's|.*wait.\([[:digit:]]*\):\([[:digit:]]*\):\([[:digit:]]*\).*|\2|p')
second=$(grep -i -m1 "please wait.*to download this file" $f | sed -n 's|.*wait.\([[:digit:]]*\):\([[:digit:]]*\):\([[:digit:]]*\).*|\3|p')
waiting $second $(($minute+$hour*60))
fi
urlpart=$(grep -i -m1 "To download this file with slow speed" $f | sed -n 's|.*href="\/\([^ "]*\).*|\1|p')
[ -z "$urlpart" ] && urlpart=$(grep window.location.href $f | sed -n 's|.*href.=..\/\([^ ]*\).*|\1|p' | tr -d "\';")
[ -z "$urlpart" ] && errmsg "Konnte keine Download-URL ermitteln" && continue
#? fi
finalurl=$(echo ${baseurl}/${urlpart})
if download "$finalurl" "$filename"; then
#TODO: verify content/filesize (small filesize / html content...?)
break
fi
done
}
Dies funktioniert auch echt super, nur wenn die Fehlermeldung "errmsg "Du lädst schon von diesem Hoster"" kommt, dann will er 10 Minuten warten und macht trotzdem einen reconnect.
Hat jemand eine Ahnung warum er das macht?
Gruß
Stulle84
Abwesend
Hi,
ich habe ein Plugin für fboom.me geschrieben!!
Dies funktioniert auch echt super, nur wenn die Fehlermeldung "errmsg "Du lädst schon von diesem Hoster"" kommt, dann will er 10 Minuten warten und macht trotzdem einen reconnect.
Hat jemand eine Ahnung warum er das macht?
Das macht er deswegen:
elif grep -qi ">Premium download</button>" $f; then
errmsg "Du lädst schon von diesem Hoster"
waiting 0 10
break
fi
Mit dem "waiting 0 10" lässt du 10 Minuten warten und dann weiter im Code.
Siehe lib/reconnect.sh:
# waiting [SECONDS] [MINUTES] [WAITMAX] [CURL-MSG]
# => [SECONDS]+[MINUTES] = Wartezeit
# => WAITMAX => ist nur noch diese Wartezeit über, löse keinen Reconnect mehr aus, weil es sich nicht mehr lohnt
# - Ist Wartezeit (seconds+minutes) größer als waitmax,
# : Reconnect erlaubt => so wird nicht gewartet (Abbruch)
# : ansonsten wird gewartet
# - Ist Wartezeit kleiner als waitmax (und waitmax ist gesetzt)
# : Erlaube Reconnect, führe selbst aber keinen Reconnect aus (weil wir innerhalb
# der gewünschten Wartezeit sind (Zum Beispiel Download-Wartezeit)!
# - Während der Wartezeit über waiting Funktion ist ein Reconnect erwünscht!
#
# waiting 100 0 100 "Testmeldung" => Warte 100 Sekunden mit Statusmeldung "Testmeldung"
# Löse keinen Reconnect selber aus.
# waiting 100 0 0 "Testmeldung" => Falls Reconnect erlaubt löse sofort einen Reconnect aus (waitmax ist Null!)
# waiting 100 0 20 "Testmeldung" => Falls Reconnect erlaubt löse sofort einen Reconnect aus (falls nur noch 20 Sekunden zu warten sind, löse keinen Reconnect mehr aus)
# waiting 100 => Warte 100 Sekunden und löse keinen Reconnect selber aus
AHA, ich sehe grade dein Problem. Er macht einen Reconnect, obwohl er nicht sollte. Hmm, interessant, fällt mir auf die Schnelle nichts ein.
Abwesend
Gib bei waiting einfach einen dritten Parameter an.
Der Reconnect wird gemacht, weil 10 Minuten (600 Sekunden) länger sind 200 Sekunden.
"waiting 0 10 0" sollte das gewünschte Ergebnis liefern.
Abwesend
@stulle84:
Ich habe dein Plug-in eingecheckt, mit der von roadman17 vorgeschlagenen Änderung.
Abwesend
yoa, so funktioniert es...
Wenn jamand noch Probleme hat, dann Meldung an mich!
Abwesend
Ich hab doch noch einen kleinen Fehler gefunden:
elif grep -qi ">Premium download</button>" $f; then
errmsg "Du lädst schon von diesem Hoster"
waiting 0 10 0
continue
fi
Beim parallel Downloads muss nach der Wartezeit ein "Continue" kommen und kein Break. Sonst versuch FritzLoad es nicht noch einmal...
Abwesend