Fritz!Load…

… Forum für Software-Entwickler, Web-Designer und Benutzer.

Du bist nicht angemeldet.

Ankündigung

Liebe Fritz!Load-Nutzer,
wie man am Datum des letzten Beitrags erkennt, wird dieses Forum seit langem nicht mehr benutzt. Zwar entstehen keine zusätzliche Kosten, um dieses Forum zu halten, nichtsdestotrotz macht es keinen Sinn ein totes Forum im Internet zu präsentieren. Aus diesem Grund werden wir demnächst dieses Forum schließen. Falls sich dennoch ein paar hartgesottene Mitglieder finden, die dieses Forum immer noch am Leben halten wollen, sollen sich bitte im Forum „Allgemeine Diskussion“ melden.
(19.12.2023)

Hinweis: Falls sich die Forum-Adresse ändern sollte, so gehe bitte auf die Fritz!Load-FAQ-Seite in Sourceforge.net, um die aktuelle Forum-Adresse zu erfahren oder aktualisiere deine Fritz!Load-Version auf den neuesten Stand und nutze den Link „Forum“ unter „Allgemein“ in der Registerkarte „Hilfe“ direkt in Fritz!Load.

#1 am 01. Mar. 2015 um 19:47 Uhr

stulle84
Mitglied
Registriert: am 04. Feb. 2013
Beiträge: 26

fboom.me Plugin reconnect Problem

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

#2 am 02. Mar. 2015 um 00:05 Uhr

rolex0815
Entwickler
Registriert: am 29. Jun. 2012
Beiträge: 558

Antw.: fboom.me Plugin reconnect Problem

stulle84 schrieb:

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. neutral

Abwesend

#3 am 02. Mar. 2015 um 10:03 Uhr

roadman17
Entwickler
Registriert: am 07. Jul. 2012
Beiträge: 357

Antw.: fboom.me Plugin reconnect Problem

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

#4 am 02. Mar. 2015 um 12:52 Uhr

rolex0815
Entwickler
Registriert: am 29. Jun. 2012
Beiträge: 558

Antw.: fboom.me Plugin reconnect Problem

@stulle84:

Ich habe dein Plug-in eingecheckt, mit der von roadman17 vorgeschlagenen Änderung.

Abwesend

#5 am 02. Mar. 2015 um 20:13 Uhr

stulle84
Mitglied
Registriert: am 04. Feb. 2013
Beiträge: 26

Antw.: fboom.me Plugin reconnect Problem

yoa, so funktioniert es...

Wenn jamand noch Probleme hat, dann Meldung an mich!

Abwesend

#6 am 02. Mar. 2015 um 20:54 Uhr

stulle84
Mitglied
Registriert: am 04. Feb. 2013
Beiträge: 26

Antw.: fboom.me Plugin reconnect Problem

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

Fußzeile des Forums

Angetrieben von FluxBB