; Dieses Script ist eine modifizierte Version von dem 4Chan-Script von Abomb ; download.mrc wird benötigt um die volle Funktonsfähigkeit zu erhalten ; Befehl /4chan [Board (optional, standard ist b für /b/)] alias 4chan { /set %4chancounter 0 /set %4channp $true /set %4chanchan $iif($chan == $null , $active, $chan) if ($1 != $null) { if ($1 isnum) { /set %4changetc $1 } else { /set %4chanchan $1 } } set %regex File: (.*?)<\/title>/g) var %title = $regml(title,%titlenum) if (%title == 4chan - 404 Not Found) { /echo -t * 404 response, fetching of board / $+ $iif(%board,%board,b) $+ / halted... return } var %bsize = $regex(4chan,$bvar(&chan,%minlen,%maxlen).text ,%regex) %minlen = $calc(%maxlen + 1) %maxlen = $calc(%maxlen + 500) var %bsize = $regml(4chan,0) var %i = 1 while (%i <= %bsize) { set %tmp $regml(4chan,%i) /inc %i if ($gettok(%tmp,2,$asc(/)) == %4chanlastone) { continue } ; /var %temp = $mid(%temp,$pos(%temp, File: (.*?)<\/title>/g) var %title = $regml(titleimg,%titlenum) if (%titlenum != 0) { .remove %file /echo -t * Server answered: %title $+ , download halted... continue } if (%fetchcnt == 0) { inc %fetchcnt } inc %downloadcnt set %4chanbuf $+ %4chanfn %4chanfn if (%fetchcnt == 1) { if ( %4chanchan = echo ) { /set %4chan $gettok(%tmp,2,$asc(/)) } elseif ( %4chanchan == Status Window ) { } elseif ( %4chanchan == @4chan) { } else { /msg %4chanchan %4chanlink set %4chanlastone $gettok(%tmp,2,$asc(/)) } .timer4chan off return } elseif (%downloadcnt == %fetchcnt) { .timer4chan off return } elseif (%fetch == 1) { if ( %4chanchan = echo ) { /set %4chan $gettok(%tmp,2,$asc(/)) } elseif ( %4chanchan == Status Window ) { } elseif ( %4chanchan == @4chan) { } else { /msg %4chanchan %4chanlink set %4chanlastone $gettok(%tmp,2,$asc(/)) } } inc %fetch } /unset %4chancounter set %4chanchan @4chan } } } %minlen = 1 %maxlen = 500 /inc %page } /bunset &chan /timer4chan off ; sockopen -e 4chani $+ $rand(0,9999) boards.4chan.org 443 ; if ( $$1 = script ) { return %fakt } } alias 4chanpaint { /clear @4chan set %picname %4chancurpic if ($1 == newone) { if ($numtok(%4chancurpic,32) > 1) { set %picname %4chancurpic /set %4chancurdrawpic %picname } set %buf $eval($var(4chanbuf*,1),2) if (%buf) { set %4chancurpic %buf set %picname %4chancurpic /set %4chancurdrawpic %buf /unset %4chanbuf $+ [ %buf ] } } var %picwidth = $pic(%4chansavedir $+ %picname).width var %picheight = $pic(%4chansavedir $+ %picname).height if ($pic(%4chansavedir $+ %picname).width > $window(@4chan).bw || $pic(%4chansavedir $+ %picname).height > $window(@4chan).bh) { var %wteiler = $calc($window(@4chan).bw / $pic(%4chansavedir $+ %picname).width) var %hteiler = $calc($window(@4chan).bh / $pic(%4chansavedir $+ %picname).height) if (%wteiler < %hteiler) { var %picwidth = $calc($pic(%4chansavedir $+ %picname).width * %wteiler) var %picheight = $calc($pic(%4chansavedir $+ %picname).height * %wteiler) } else { var %picwidth = $calc($pic(%4chansavedir $+ %picname).width * %hteiler) var %picheight = $calc($pic(%4chansavedir $+ %picname).height * %hteiler) } } if ($1 != nopaint) { /renwin @4chan @4chan %picname $iif($var(4chanbuf*,0) != 0, - $var(4chanbuf*,0) Bilder geladen,) } var %xpos = $calc(($window(@4chan).bw / 2) - (%picwidth / 2)) var %ypos = $calc(($window(@4chan).bh / 2) - (%picheight / 2)) if (%picwidth != $pic(%4chansavedir $+ %picname).width && $exists(%4chansavedir $+ %picname)) { /drawpic -s @4chan %xpos %ypos %picwidth %picheight %4chansavedir $+ %picname } else { if ($exists(%4chansavedir $+ %picname)) { /drawpic @4chan %xpos %ypos %4chansavedir $+ %picname } } } alias unsetbuf { tokenize 44 $1- !.unset $* } menu @4chan { sclick:{ 4chanpaint newone } rclick:{ if (($mouse.key & 2) && ($mouse.key & 8)) { remove %4chansavedir $+ %4chancurdrawpic return } } dclick:{ if ($var(4chanbuf*,0) != 0) { if ($mouse.key & 2) { 4chan $input(Wieviele?,eo)) $input(Board? Wenn leergelassen ist es zufällig!,eo) } else { 4chanpaint newone } } else { 4chan $iif(($mouse.key & 2), $input(Wieviele?,eo),1) /renwin @4chan @4chan %picname $iif($var(4chanbuf*,0) != 0, - $var(4chanbuf*,0) Bilder geladen,) /set %4chanshownewpic 1 } } Link im Channel posten:{ if (!$istok(%4chanlastone,%4chancurdrawpic,32)) { /msg %4chanoutputchan https://i.4cdn.org/b/ $+ %4chancurdrawpic $iif(($mouse.key & 4), $input(Zusatztext:,eo)) set %4chanlastone $addtok(%4chanlastone, %4chanfn, 32) if ($numtok(%4chanlastone,32) > 10) { set %4chanlastone $deltok(%4chanlastone, 1, 32) } } } Bild Löschen:{ .remove %4chansavedir $+ %4chancurdrawpic 4chanpaint nopaint } - Ein Bild ziehen:{ if ($numtok(%4chancurpic,32) > 1) { 4chanpaint newone } else { 4chan 1 /renwin @4chan @4chan %picname $iif($var(4chanbuf*,0) != 0, - $var(4chanbuf*,0) Bilder geladen,) /set %4chanshownewpic 1 } } Mehrere Bilder ziehen:{ if ($numtok(%4chancurpic,32) > 1) { 4chan $input(Wieviele?,eo)) } else { 4chan $input(Wieviele?,eo) /renwin @4chan @4chan %picname $iif($var(4chanbuf*,0) != 0, - $var(4chanbuf*,0) Bilder geladen,) /set %4chanshownewpic 1 } } } alias 4chanw { /window -p @4chan @4chan 4chanpaint nopaint } on 1:text:*.4cdn.org/*:#:{ 4changrab $1- } alias 4changrab { /set %4chancounter 0 /set %4channp $true /set %4chanchan $iif($chan == $null , $active, $chan) /var %reg $regex(4chan,$strip($$1-),/\b(?:http|https)\:\/\/([^\.\s]+[^\s]+\.(?:png|jpe?g|bmp|gif))\b/g) /var %regsum $regml(4chan,0) /var %i 1 while (%i <= %regsum) { /set %4chanlink $regml(4chan,%i) /set %4chanfn $gettok(%4chanlink,$numtok(%4chanlink,47),47) if (!$isfile(%4chansavedir $+ $gettok(%4chanlink,3,$asc(/)))) { !var %downloaded2 = $download(%4chansavedir $+ $gettok(%4chanlink,3,$asc(/)),GET,https:// $+ %4chanlink,2) if (%downloaded2) { var %file = %4chansavedir $+ $gettok(%4chanlink,3,$asc(/)) bread %file 0 1000 &file var %titlenum = $regex(titleimg,$bvar(&file,%file,800).text,/(.*?)<\/title>/g) var %title = $regml(titleimg,%titlenum) if (%titlenum != 0) { .remove %file /echo -t * Server answered: %title $+ , download halted... return } set %4chanlastone $gettok(%4chanlink,3,$asc(/)) set %4chanfn $gettok(%4chanlink,3,$asc(/)) set %4chancurpic $gettok(%4chanlink,3,$asc(/)) set %4chanbuf $+ %4chanfn %4chanfn if ($window(@4chan) == @4chan) { /renwin @4chan @4chan %4chanfn $iif($var(4chanbuf*,0) != 0, - $var(4chanbuf*,0) Bilder geladen,) } } } /inc %i } } alias sub4chanmenuchans { if ($1 == begin) return - if ($1 <= $chan(0)) return $iif($chan($1) == %4chanoutputchan,$style(1)) $chan($1) $+ :4chansetchan $chan($1) if ($1 == end) return - } alias -l 4chansetchan { /set %4chanoutputchan $1 } menu menubar { 4chan .4chan Fenster öffnen:/4chanw .4chan Links in folgendem Channel posten ..$submenu($sub4chanmenuchans($1)) .Ordner zum Speichern der Bilder wählen (gerade %4chansavedir $+ ):/set %4chansavedir $sdir(%4chansavedir, Ordner zum speichern der 4chan Bilder wählen) .Hilfe:/4chanhelp } alias 4chanhelp { /window -dCk0 +l @4chanhelp 0 0 600 335 /aline -pi @4chanhelp Zuerst mal schaut in das Befehlemenü oben, da ist jetzt ein neuer 4chan Eintrag drin, und legt den Channel fest in den ihr 4chan links posten wollt! /aline -pi @4chanhelp Da könnt ihr auch diese Hilfe nochma aufmachen und das @4chan Fenster aufmachen... /aline -pi @4chanhelp $chr(160) /aline -pi @4chanhelp Die Bedienung des @4chan Fensters ist eigentlich ganz einfach: /aline -pi @4chanhelp Einfacher Linksclick = zeichnet das aktuelle Bild neu /aline -pi @4chanhelp Doppelter Linksklick = holt sich ein neues Bild und zeigt dieses an /aline -pi @4chanhelp Doppelter Linksklick + STRG = man kann eingeben wieviele Bilder gezogen werden sollen - mehr als 10 macht normalerweise keinen Sinn! /aline -pi @4chanhelp Rechtscklick = Popupmenu um Bilder direkt wieder zu löschen (wenn sie zu eklig sind =) oder um das aktuelle Bild in den Channel zu posten /aline -pi @4chanhelp $chr(160) /aline -pi @4chanhelp Alle links zu 4chan Bildern die in Channeln gesagt werden werden automatisch gedownloaded und in den angug-queue hinzugefügt. /aline -pi @4chanhelp Auch werden alle Bilder die man selber anfordert (im @4chan Fenster) automatisch gezogen und gespeichert. /aline -pi @4chanhelp Die ganzen Bilder landen im 4chan Ordner in deinem Mirc Ordner ;) } on 1:load:{ if (%4chansavedir == $null) { /set %4chansavedir 4chan\ } mkdir 4chan /4chanhelp }