User:TaxonBot/NeueArtikel4.tcl

From Wikipedia

(.*)} $nportal ]]]] foreach item [regexp -all -inline -- {\[\[.*?\]\]} $locportal] { regsub -all -- , $item @comma@ comma regsub -- [regexvar $item] $locportal $comma locportal } set locportal [string map {@comma@ , {\&} &} [split $locportal ,]] foreach 1 $locportal {lappend tlocportal [string trim $1]} foreach line $tlocportal { if ![empty line] { regsub -all -nocase -- {\[\[(?!Datei:|File:|:)} $line \[\[: nline regexp -- {\[\[(.*?)\]\] \((.*?)\)} $nline -- item linedate set linedate [string trim [ clock format [clock scan $linedate -format $linedateformat -locale de] -format $linedateformat -locale de ]] set lineday [clock format [clock scan $linedate -format $linedateformat -locale de] -format %d] set linemonth [clock format [clock scan $linedate -format $linedateformat -locale de] -format %m] set lineyear [clock format [clock scan $linedate -format $linedateformat -locale de] -format %Y] if {$linemonth eq {12} && $tmonth eq {01}} { set clinedate [clock scan "[incr lineyear -1] $linemonth $lineday" -format {%Y %m %d}] } else { set clinedate [clock scan "$lineyear $linemonth $lineday" -format {%Y %m %d}] } if {$clinedate > [expr $altdate - 86400] && ![missing $item] && ![redirect $item] && $item ni $bkl} { lappend lncportal $clinedate "\[\[$item\]\] ($linedate)" } } } foreach {hit lemma ts} [lrange [join [lsort -unique -decreasing $titles]] 1 end] { if {$lemma eq {/leer/}} {continue} if {$hit == 3} { lassign [list [lindex $lemma 0] [lindex $lemma 1]] src tgt if {[string first \[\[:$src\]\] $lncportal] > -1 || [string first \[\[$src\]\] $lncportal] > -1} { set lncportal [string map [list \[\[:$src\]\] \[\[:$tgt\]\] \[\[$src\]\] \[\[:$tgt\]\]] $lncportal] continue } else { set lemma $tgt } }

 			if {[redirect $lemma] || [missing $lemma] || $lemma in $bkl} {continue}

if {[string first \[\[:$lemma\]\] $lncportal] == -1 && [string first \[\[$lemma\]\] $lncportal] == -1} { set neudate [clock scan $ts -format {%Y %m %d}] set linets [clock format $neudate -format $linedateformat -locale de] set neu [string trim [clock format $neudate -format {%e. %B} -locale de]] set lncportal [linsert $lncportal 0 $neudate "\[\[:$lemma\]\] ($neu)"] } } set nacount [regexp -all -- {\[\[:} $lncportal] return [string map {& {\&}} [join [dict values [lsort -stride 2 -integer -decreasing $lncportal]] ,\n]] } }

proc portals {portal nportal data} { global tmonth bkl nacount set lncportal {} dict with data { if {$listformat eq {SHORTLIST}} {set linedateformat %d.%m.} else {set linedateformat {%d. %b}} set dateformat {%Y %m %d} set altdate [clock scan $alt -format $dateformat -locale de] set locportal [split [join [dict values [ regexp -inline -- {(.*)} $nportal ]]] \n] if {$locportal eq Template:Der Inhalt (neue Artikel) wird in den nächsten Stunden bzw. Tagen aktualisiert.} {set locportal {}} foreach line $locportal { lassign {} nline2 nline12 if ![empty line] { regsub -all -nocase -- {\[\[(?!Datei:|File:|:)} $line \[\[: nline if {$listformat eq {SHORTLIST}} { regexp -- {(\d{1,2}\.\d\d\.)} $nline -- olinedate } else { regexp -- {(\d{1,2}\. \w{3,4})} $nline -- olinedate } if {[string index $olinedate 1] eq {.}} { set linedate 0$olinedate set nline [string map [list $olinedate $linedate] $nline] } else { set linedate $olinedate } if {$linedate ne {}} { set lineday [clock format [clock scan $linedate -format $linedateformat -locale de] -format %d] set linemonth [clock format [clock scan $linedate -format $linedateformat -locale de] -format %m] set lineyear [clock format [clock scan $linedate -format $linedateformat -locale de] -format %Y] if {$linemonth eq {12} && $tmonth eq {01}} { set clinedate [clock scan "[incr lineyear -1] $linemonth $lineday" -format {%Y %m %d}] } else { set clinedate [clock scan "$lineyear $linemonth $lineday" -format {%Y %m %d}] } if {$clinedate > [expr $altdate - 86400]} { regexp -- {^(.*? )\[} $nline -- nline1 set znline [dict values [regexp -all -inline -- {\[\[(.*?)\]\]} $nline]] foreach item $znline {if {![missing $item] && ![redirect $item] && $item ni $bkl} {lappend nline2 \[\[$item\]\]}} } } if ![empty nline2] { lappend lncportal $clinedate [append nline12 $nline1 [join $nline2 { - }]] } } } foreach {hit lemma ts} [lrange [join [lsort -unique -decreasing $titles]] 1 end] { if {$lemma eq {/leer/}} {continue} if {$hit == 3} { lassign [list [lindex $lemma 0] [lindex $lemma 1]] src tgt if {[string first \[\[:$src\]\] $lncportal] > -1 || [string first \[\[$src\]\] $lncportal] > -1} { set lncportal [string map [list \[\[:$src\]\] \[\[:$tgt\]\] \[\[$src\]\] \[\[:$tgt\]\]] $lncportal] continue } else { set lemma $tgt } } if {[redirect $lemma] || [missing $lemma] || $lemma in $bkl} {continue} if {[string first \[\[:$lemma\]\] $lncportal] == -1 && [string first \[\[$lemma\]\] $lncportal] == -1} { set neudate [clock scan $ts -format $dateformat] set linets [clock format $neudate -format $linedateformat -locale de] set reset 0 foreach {tskey line} $lncportal { if {$tskey == $neudate} { set lncportal [string map [ list >$linets ">$linets \[\[:$lemma\]\] -" "* $linets.:" "* $linets.: \[\[:$lemma\]\] -" "* $linets:" "* $linets: \[\[:$lemma\]\] -" ] $lncportal] set reset 1 } } if !$reset { if {$listformat eq {SHORTLIST}} { lappend lncportal $neudate "• $linets \[\[:$lemma\]\]" } elseif {[lindex $linets 1] eq {Mai}} { lappend lncportal $neudate "* $linets: \[\[:$lemma\]\]" } else { lappend lncportal $neudate "* $linets.: \[\[:$lemma\]\]" } } } } set nacount [regexp -all -- {\[\[:} $lncportal] return [string map {& {\&}} [join [dict values [lsort -stride 2 -integer -decreasing $lncportal]] \n]] } }

proc catselect {key kdbranch catdb icatdb} { global $key\kat lassign {} $key\match wDWmatch if {$key eq {kd}} { set keykat [dict get $kdkat $kdbranch] foreach kdcat $keykat { set icheck 0 if {$kdcat in $icatdb} { incr icheck break } } if !$icheck { foreach kdcat $keykat { if {$kdcat in $catdb} { lappend kdmatch $kdcat } } } return $kdmatch } else { set keykat [subst $$key\kat] foreach "$key l$key\cat" $keykat { set icheck 0 if {$key eq {qs}} {set l$key\cat [dict get [subst $[subst l$key\cat]] pagecat]}

  1. foreach item [subst $[subst l$key\cat]] {set myarray($item) 1}
  2. foreach item $icatdb { if {$myarray($item)} { incr icheck ; break } }
  3. array unset myarray

foreach $key\cat [subst $[subst l$key\cat]] { if {[subst $$key\cat] in $icatdb} { incr icheck break } }

  1. set icheck [llength [struct::set intersect [subst $[subst l$key\cat]] $icatdb]]

if !$icheck { foreach $key\cat [subst $[subst l$key\cat]] { if {[subst $$key\cat] in $catdb && [subst $$key] ni [subst $$key\match]} { lappend $key\match [subst $$key] } } } if {[llength $wDWmatch] == 50} {break} } return [subst $$key\match] } }

proc qsw portal { global lkkat kdkat rvkat qskat phkat phdict qscount listformat lassign {0 LIST ALL {} {Zurzeit keine} {}} qscount listformat LISTS ALWAYSSHOW EMPTY QSWORKLIST set qswdb [read [set f [open QSWORKLIST/[string map {{ } _ ~ 15:52, 7 February 2024 (UTC) / ~} $portal] r]]] ; close $f dict with qswdb { set listformat [dict get $param listformat] set LISTS [join [split [dict get $param LISTS] ,]] set ALWAYSSHOW [join [split [dict get $param ALWAYSSHOW] ,]] set EMPTY [dict get $param EMPTY]

  1. set LISTS ALL

if {({ALL} in $LISTS && {-LK} ni $LISTS) || {LK} in $LISTS} { set lkblock {} set lkmatch [catselect lk -- $catdb $icatdb]

  1. puts lkmatch:$lkmatch

foreach lk [lsort -unique $lkmatch] { if [matchtemplate $lk Vorlage:Löschantragstext] {catch { regexp -- {\{\{Löschantragstext\|tag=(.*?)\|monat=(.*?)\|jahr=(.*?)\|titel=(.*?)[|\}]} [conts t $lk x] -- dy mo yr tx set ladate1 [string map {{ } {}} [clock format [ set c [clock scan [list $dy $mo $yr] -format {%e %B %Y} -locale de] ] -format %e.%N.]] set ladate2 [string trim [clock format $c -format {%e. %B %Y} -locale de]] lappend lkblock [format %s $lk $ladate2 $tx $ladate1] }} } incr qscount [llength $lkblock] set lkblock [join $lkblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set lkbranch {;30x15px|text-unten|Löschkandidat|link=:Kategorie:Wikipedia:Löschkandidat Löschkandidat:} if ![empty lkblock] { append QSWORKLIST \n$lkbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$lkblock } elseif {({ALL} in $ALWAYSSHOW && {-LK} ni $ALWAYSSHOW) || {LK} in $ALWAYSSHOW} { append QSWORKLIST \n$lkbranch\n$EMPTY } } if {({ALL} in $LISTS && {-KD} ni $LISTS) || {KD} in $LISTS} { set kdblock {} foreach kdbranch {kdla kdub kdzf kdqs} { set kdmatch [catselect kd $kdbranch $catdb $icatdb]

  1. puts kdmatch:$kdmatch

foreach kd [lsort -unique $kdmatch] { catch { set kdc [conts t $kd x]

  1. puts $kdbranch:$kd

switch $kdbranch { kdla { if [matchtemplate $kd Vorlage:Löschantragstext] { regexp -- {Löschantragstext\|tag=(.*?)\|monat=(.*?)\|jahr=(.*?)\|titel=(.*?)[|\}]} $kdc -- dy mo yr tx set ladate1 [string map {{ } {}} [clock format [ set c [clock scan [list $dy $mo $yr] -format {%e %B %Y} -locale de] ] -format %e.%N.]] set ladate2 [string map {{ } {}} [clock format $c -format %Y/%B/%e -locale de]] lappend kdblock [format %s $kd $ladate2 $tx $ladate1] } } kdub { if [matchtemplate $kd Vorlage:Umbenennungstext] { regexp -- {Umbenennungstext\|tag=(.*?)\|monat=(.*?)\|jahr=(.*?)\|ziel=(.*?)[|\}]} $kdc -- dy mo yr tx set ladate1 [string map {{ } {}} [clock format [ set c [clock scan [list $dy $mo $yr] -format {%e %B %Y} -locale de] ] -format %e.%N.]] set ladate2 [string map {{ } {}} [clock format $c -format %Y/%B/%e -locale de]] lappend kdblock [format %s $kd $ladate2 $kd $tx $ladate1] } } kdzf { if [matchtemplate $kd Vorlage:Zusammenführungstext] { regexp -- {Zusammenführungstext\|tag=(.*?)\|monat=(.*?)\|jahr=(.*?)\|ziel=(.*?)[|\}]} $kdc -- dy mo yr tx set ladate1 [string map {{ } {}} [clock format [ set c [clock scan [list $dy $mo $yr] -format {%e %B %Y} -locale de] ] -format %e.%N.]] set ladate2 [string map {{ } {}} [clock format $c -format %Y/%B/%e -locale de]] lappend kdblock [format %s $kd $ladate2 $kd $tx $ladate1] } } kdqs { if [matchtemplate $kd Vorlage:QS-Antrag-Kategorien] { regexp -- {QS-Antrag-Kategorien\|tag=(.*?)\|monat=(.*?)\|jahr=(.*?)[|\}]} $kdc -- dy mo yr set ladate1 [string map {{ } {}} [clock format [ set c [clock scan [list $dy $mo $yr] -format {%e %B %Y} -locale de] ] -format %e.%N.]] set ladate2 [string map {{ } {}} [clock format $c -format %Y/%B/%e -locale de]] lappend kdblock [format {Template:W-Link} $kd $ladate2 $kd $ladate1] } } } } } } incr qscount [llength $kdblock] set kdblock [join $kdblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set kdbranch {;30x15px|text-unten|Kategoriendiskussion|link=:Kategorie:Wikipedia:Kategorienwartung Kategoriendiskussion:} if ![empty kdblock] { append QSWORKLIST \n$kdbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$kdblock } elseif {({ALL} in $ALWAYSSHOW && {-KD} ni $ALWAYSSHOW) || {KD} in $ALWAYSSHOW} { append QSWORKLIST \n$kdbranch\n$EMPTY } } if {({ALL} in $LISTS && {-RV} ni $LISTS) || {RV} in $LISTS} { set rvblock {} set rvmatch [catselect rv -- $catdb $icatdb]

  1. puts rvmatch:$rvmatch

foreach rv [lsort -unique $rvmatch] {

  1. puts $rv

if {[matchtemplate $rv Vorlage:Review] || [matchtemplate $rv Vorlage:Schreibwettbewerb] || [matchtemplate $rv Vorlage:UIBK-Bio]} { regexp -- {\{\{(Review\|(.*?)|Schreibwettbewerb|UIBK-Bio)??\}\}} [conts t $rv x] -- rvpage rvlink

  1. puts $rvpage:$rvlink ; gets stdin

if {$rvpage eq {Schreibwettbewerb}} { lappend rvblock [format {%s (SW)} $rv] } elseif {[string first Review $rvpage] > -1} { lappend rvblock [format {%s (%s)} $rv $rvlink $rv $rvlink] } elseif {$rvpage eq {UIBK-Bio}} { lappend rvblock [format {%s (UIBK-Bio)} $rv $rv] } } } incr qscount [llength $rvblock] set rvblock [join $rvblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set rvbranch {;30x15px|text-unten|Review|link=:Kategorie:Wikipedia:Reviewprozess Review:} if ![empty rvblock] { append QSWORKLIST \n$rvbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$rvblock } elseif {({ALL} in $ALWAYSSHOW && {-RV} ni $ALWAYSSHOW) || {RV} in $ALWAYSSHOW} { append QSWORKLIST \n$rvbranch\n$EMPTY } } if {({ALL} in $LISTS && {-QS} ni $LISTS) || {QS} in $LISTS} { set qsblock {} set qsmatch [catselect qs -- $catdb $icatdb]

  1. puts qsmatch:$qsmatch

foreach qs [lsort -unique $qsmatch] { set qsdict [dict get $qskat $qs] dict with qsdict { if [matchtemplate $qs Vorlage:$qstempl] { switch $qsshort { 0 { regexp -- {\{\{QS-Antrag\|(.*?)[|\}]} [conts t $qs x] -- qsdate1 set qsdate2 [string map {{ } {}} [ clock format [clock scan $qsdate1 -format {%e. %B %Y} -locale de] -format %e.%N. ]] lappend qsblock [ format %s $qs $qsdate1 $qs $qsdate2 ] } AUG { lappend qsblock [format {Template:W-Link} $qs $qs $qsshort] } BKP { set nut {} regexp -- {\{\{QS-BKS\|(.*?)[|\}]} [conts t $qs x] -- nut if {[string tolower $nut] eq {knacknüsse=ja}} {set qslong WP:BKF/K} lappend qsblock [format {Template:W-Link} $qs $qslong $qs $qsshort] } C { set nut {} regexp -- {\{\{QS-Chemie\|(.*?)[|\}]} [conts t $qs x] -- nut if {[string tolower $nut] eq {knacknüsse=ja}} {set qslong WP:RC/K} lappend qsblock [format {Template:W-Link} $qs $qslong $qs $qsshort] } FF { regexp -- {\{\{QS-FF\|(.*?)[|\}]} [conts t $qs x] -- qsdate if ![catch {clock scan [string trim $qsdate] -format {%B %Y} -locale de}] { lappend qsblock [format {Template:W-Link} $qs $qslong $qsdate $qsshort] } else { lappend qsblock [format {Template:W-Link} $qs $qslong $qsshort] } } MIL { lappend qsblock [format {Template:W-Link} $qs $qs $qsshort] } SCHIFF { lappend qsblock [format {Template:W-Link} $qs $qs $qsshort] } U { lappend qsblock [format {Template:W-Link} $qs $qs $qsshort] } USA { regexp -- {\{\{QS-USA\|(.*?)[|\}]} [conts t $qs x] -- state lappend qsblock [format {Template:W-Link} $qs $qslong $state $qsshort] } WF { lappend qsblock [format {Template:W-Link} $qs $qs $qsshort] } § { set nut {} regexp -- {\{\{QS-Recht\|(.*?)[|\}]} [conts t $qs x] -- nut if {[string tolower $nut] eq {knacknüsse=ja}} {append qslong /Knacknüsse} lappend qsblock [format {Template:W-Link} $qs $qslong $qs $qsshort] } default { lappend qsblock [format {Template:W-Link} $qs $qslong $qs $qsshort] } } } } } incr qscount [llength $qsblock] set qsblock [join $qsblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : $listformat eq {CLIST} ? {#} : {*}}] "] set qsbranch {;30x15px|text-unten|Qualitätssicherung|link=:Kategorie:Wikipedia:Qualitätssicherung Qualitätssicherung:} if ![empty qsblock] { append QSWORKLIST \n$qsbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$qsblock } elseif {({ALL} in $ALWAYSSHOW && {-QS} ni $ALWAYSSHOW) || {QS} in $ALWAYSSHOW} { append QSWORKLIST \n$qsbranch\n$EMPTY } } if {({ALL} in $LISTS && {-PH} ni $LISTS) || {PH} in $LISTS} { set phblock {} set phmatch [catselect ph -- $catdb $icatdb]

  1. puts phmatch:$phmatch

foreach ph [lsort -unique $phmatch] { if {[matchtemplate $ph Vorlage:Portalhinweis] || [matchtemplate $ph Vorlage:Projekthinweis] || [matchtemplate $ph Vorlage:Redaktionshinweis]} { regexp -- {\{\{((Portal|Projekt|Redaktions)??hinweis)\|(.*?)(\|(.*?)\}|\})} [conts t $ph x] -- -- type proj -- sub switch $type { Portal {set project PD:$proj} Projekt {set project "WD:WikiProjekt $proj"} Redaktions {set project "WP:Redaktion $proj"} } catch { set phdictval [dict get $phdict $type:$proj] set proj [lindex $phdictval 0] set project [lindex $phdictval 1] } switch $type { Portal { lappend phblock [format %s $ph $project $ph $proj] } Projekt { if ![empty sub] { lappend phblock [format %s $ph $project $sub $ph $proj] } else { lappend phblock [format %s $ph $project $ph $proj] } } Redaktions { if ![empty sub] { lappend phblock [format %s $ph $project $sub $proj] } else { lappend phblock [format %s $ph $project $ph $proj] } } } } } incr qscount [llength $phblock] set phblock [join $phblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set phbranch {;30x15px|text-unten|Projekthinweis|link=:Kategorie:Wikipedia:Qualitätssicherung Projekthinweis:} if ![empty phblock] { append QSWORKLIST \n$phbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$phblock } elseif {({ALL} in $ALWAYSSHOW && {-PH} ni $ALWAYSSHOW) || {PH} in $ALWAYSSHOW} { append QSWORKLIST \n$phbranch\n$EMPTY } }

  1. puts $QSWORKLIST
  2. puts qscount:$qscount
  3. puts $listformat

return [string map {& {\&}} $QSWORKLIST]

  1. puts [edit user:TaxonBota/qstest "Bot: QSWORKLIST: $qscount" $QSWORKLIST]

} }

proc w portal { global db wUEkat wUVkat wLUEkat wLkat wQFkat wNkat wKATkat wVVkat wDWkat wVSkat wINTkat wWkat wRDkat hidden wcount listformat lassign {0 LIST ALL {} {Zurzeit keine} {}} wcount listformat LISTS ALWAYSSHOW EMPTY WORKLIST set wdb [read [set f [open WORKLIST/[string map {{ } _ / ~} $portal] r]]] ; close $f dict with wdb { set listformat [dict get $param listformat] set LISTS [join [split [dict get $param LISTS] ,]] set ALWAYSSHOW [join [split [dict get $param ALWAYSSHOW] ,]] set EMPTY [dict get $param EMPTY]

  1. set LISTS ALL
  2. set ALWAYSSHOW ALL

if {({ALL} in $LISTS && {-UE} ni $LISTS) || {UE} in $LISTS} { set wUEblock {} set wUEmatch [catselect wUE -- $catdb $icatdb]

  1. puts wUEmatch:$wUEmatch

if ![empty wUEmatch] { foreach wUE [lsort -unique $wUEmatch] {lappend orpt '[sql <- $wUE]'} mysqlreceive $db " select page_title from page, categorylinks where cl_from = page_id and page_namespace = 0 and page_title in ([join $orpt ,]) and cl_to = 'Wikipedia:Überarbeiten' order by page_title ;" pt { lappend wUEblock "\[\[:[sql -> $pt]\]\]" } unset -nocomplain orpt } incr wcount [llength $wUEblock] set wUEblock [join $wUEblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wUEbranch {;30x15px|text-unten|Überarbeiten|link=:Kategorie:Wikipedia:Überarbeiten Überarbeiten:} if ![empty wUEblock] { append WORKLIST \n$wUEbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wUEblock } elseif {({ALL} in $ALWAYSSHOW && {-UE} ni $ALWAYSSHOW) || {UE} in $ALWAYSSHOW} { append WORKLIST \n$wUEbranch\n$EMPTY } } if {({ALL} in $LISTS && {-UV} ni $LISTS) || {UV} in $LISTS} { set wUVblock {} set wUVmatch [catselect wUV -- $catdb $icatdb]

  1. puts wUVmatch:$wUVmatch

if ![empty wUVmatch] { foreach wUV [lsort -unique $wUVmatch] {lappend orpt '[sql <- $wUV]'} mysqlreceive $db " select page_title from page, categorylinks where cl_from = page_id and page_namespace = 0 and page_title in ([join $orpt ,]) and cl_to = 'Wikipedia:Unverständlich' order by page_title ;" pt { set pt [sql -> $pt] lappend wUVblock "\[\[:$pt\]\] \[\[Diskussion:$pt|(Disk)\]\]" } unset -nocomplain orpt } incr wcount [llength $wUVblock] set wUVblock [join $wUVblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wUVbranch {;30x15px|text-unten|Allgemeinverständlichkeit|link=:Kategorie:Wikipedia:Unverständlich Allgemeinverständlichkeit:} if ![empty wUVblock] { append WORKLIST \n$wUVbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wUVblock } elseif {({ALL} in $ALWAYSSHOW && {-UV} ni $ALWAYSSHOW) || {UV} in $ALWAYSSHOW} { append WORKLIST \n$wUVbranch\n$EMPTY } } if {({ALL} in $LISTS && {-LUE} ni $LISTS) || {LUE} in $LISTS} { set wLUEblock {} set wLUEmatch [catselect wLUE -- $catdb $icatdb]

  1. puts wLUEmatch:$wLUEmatch

if ![empty wLUEmatch] { foreach wLUE [lsort -unique $wLUEmatch] {lappend orpt '[sql <- $wLUE]'} mysqlreceive $db " select page_title from page, categorylinks where cl_from = page_id and page_namespace = 0 and page_title in ([join $orpt ,]) and cl_to = 'Wikipedia:Lückenhaft' order by page_title ;" pt { lappend wLUEblock "\[\[:[sql -> $pt]\]\]" } unset -nocomplain orpt } incr wcount [llength $wLUEblock] set wLUEblock [join $wLUEblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wLUEbranch {;30x15px|text-unten|Lückenhaft|link=:Kategorie:Wikipedia:Lückenhaft Lückenhaft:} if ![empty wLUEblock] { append WORKLIST \n$wLUEbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wLUEblock } elseif {({ALL} in $ALWAYSSHOW && {-LUE} ni $ALWAYSSHOW) || {LUE} in $ALWAYSSHOW} { append WORKLIST \n$wLUEbranch\n$EMPTY } } if {({ALL} in $LISTS && {-L} ni $LISTS) || {L} in $LISTS} { set wLblock {} set wLmatch [catselect wL -- $catdb $icatdb]

  1. puts wLmatch:$wLmatch

if ![empty wLmatch] { foreach wL [lsort -unique $wLmatch] {lappend orpt '[sql <- $wL]'} mysqlreceive $db " select page_title from page, categorylinks where cl_from = page_id and page_namespace = 0 and page_title in ([join $orpt ,]) and cl_to = 'Wikipedia:Nur_Liste' order by page_title ;" pt { lappend wLblock "\[\[:[sql -> $pt]\]\]" } unset -nocomplain orpt } incr wcount [llength $wLblock] set wLblock [join $wLblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wLbranch {;30x15px|text-unten|NurListe|link=:Kategorie:Wikipedia:Nur Liste Nur Liste:} if ![empty wLblock] { append WORKLIST \n$wLbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wLblock } elseif {({ALL} in $ALWAYSSHOW && {-L} ni $ALWAYSSHOW) || {L} in $ALWAYSSHOW} { append WORKLIST \n$wLbranch\n$EMPTY } } if {({ALL} in $LISTS && {-QF} ni $LISTS) || {QF} in $LISTS} { set wQFblock {} set wQFmatch [catselect wQF -- $catdb $icatdb]

  1. puts wQFmatch:$wQFmatch

if ![empty wQFmatch] {

  1. foreach wQF [lsort -unique $wQFmatch] {lappend wQFblock \[\[:$wQF\]\]}

foreach wQF [lsort -unique $wQFmatch] {lappend orpt '[sql <- $wQF]'} mysqlreceive $db " select page_title from page, categorylinks where cl_from = page_id and page_namespace = 0 and page_title in ([join $orpt ,]) and cl_to = 'Wikipedia:Belege_fehlen' order by page_title ;" pt { lappend wQFblock "\[\[:[sql -> $pt]\]\]" } unset -nocomplain orpt } incr wcount [llength $wQFblock] set wQFblock [join $wQFblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wQFbranch {;30x15px|text-unten|Belege fehlen|link=:Kategorie:Wikipedia:Belege fehlen Belege fehlen:} if ![empty wQFblock] { append WORKLIST \n$wQFbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wQFblock } elseif {({ALL} in $ALWAYSSHOW && {-QF} ni $ALWAYSSHOW) || {QF} in $ALWAYSSHOW} { append WORKLIST \n$wQFbranch\n$EMPTY } } if {({ALL} in $LISTS && {-N} ni $LISTS) || {N} in $LISTS} { set wNblock {} set wNmatch [catselect wN -- $catdb $icatdb]

  1. puts wNmatch:$wNmatch

if ![empty wNmatch] { foreach wN [lsort -unique $wNmatch] {lappend orpt '[sql <- $wN]'} mysqlreceive $db " select page_title from page, categorylinks where cl_from = page_id and page_namespace = 0 and page_title in ([join $orpt ,]) and cl_to = 'Wikipedia:Neutralität' order by page_title ;" pt { lappend wNblock "\[\[:[sql -> $pt]\]\]" } unset -nocomplain orpt } incr wcount [llength $wNblock] set wNblock [join $wNblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wNbranch {;30x15px|text-unten|Neutralität|link=:Kategorie:Wikipedia:Neutralität Neutralität:} if ![empty wNblock] { append WORKLIST \n$wNbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wNblock } elseif {({ALL} in $ALWAYSSHOW && {-N} ni $ALWAYSSHOW) || {N} in $ALWAYSSHOW} { append WORKLIST \n$wNbranch\n$EMPTY } } if {({ALL} in $LISTS && {-KAT} ni $LISTS) || {KAT} in $LISTS} { set wKATblock {} set wKATmatch [catselect wKAT -- $catdb $icatdb]

  1. puts wKATmatch:$wKATmatch

if ![empty wKATmatch] { foreach wKAT [lsort -unique $wKATmatch] { if {![missing $wKAT] && ![redirect $wKAT]} { set lpagecat [pagecat $wKAT] foreach cat $lpagecat { if {$cat in $hidden} { lremove lpagecat $cat } } if {$lpagecat eq {}} { lappend wKATblock "\[\[:$wKAT\]\]" } } } } incr wcount [llength $wKATblock] set wKATblock [join $wKATblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wKATbranch {;30x15px|text-unten|Kategorisieren|link=:Wikipedia:Kategorien Nicht kategorisierte Seite:} if ![empty wKATblock] { append WORKLIST \n$wKATbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wKATblock } elseif {({ALL} in $ALWAYSSHOW && {-KAT} ni $ALWAYSSHOW) || {KAT} in $ALWAYSSHOW} { append WORKLIST \n$wKATbranch\n$EMPTY } } if {({ALL} in $LISTS && {-VV} ni $LISTS) || {VV} in $LISTS} { set wVVblock {} set wVVmatch [catselect wVV -- $catdb $icatdb]

  1. puts wVVmatch:$wVVmatch

if ![empty wVVmatch] { foreach wVV [lsort -unique $wVVmatch] { lassign [list [lindex $wVV 0] [lindex $wVV 1]] wVV0 wVV1 if {[string first Gestorben [pagecat $wVV0]] == -1} { if {[lindex $wVV1 0] ne {}} { foreach {lll llt} $wVV1 { lappend lwVV1 "\[\[:$lll:$llt|$lll\]\]" } lappend wVVblock "\[\[:$wVV0\]\] ([join $lwVV1 { / }])" } else { lappend wVVblock "\[\[:$wVV0\]\]" } } } } incr wcount [llength $wVVblock] set wVVblock [join $wVVblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wVVbranch {;30x15px|text-unten|Verstorben|link=:Benutzer:MerlBot/Vermutlich verstorben Vermutlich verstorben:} if ![empty wVVblock] { append WORKLIST \n$wVVbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wVVblock } elseif {({ALL} in $ALWAYSSHOW && {-VV} ni $ALWAYSSHOW) || {VV} in $ALWAYSSHOW} { append WORKLIST \n$wVVbranch\n$EMPTY } } if {({ALL} in $LISTS && {-DW} ni $LISTS) || {DW} in $LISTS} { set wDWblock {} set wDWmatch [catselect wDW -- $catdb $icatdb]

  1. puts wDWmatch:$wDWmatch

if ![empty wDWmatch] {

  1. foreach wDW $wDWmatch {lappend wDWblock "\[\[:$wDW\]\] \[\[Diskussion:$wDW|(Disk)\]\]"}

foreach wDW $wDWmatch {lappend orpt '[sql <- $wDW]'} mysqlreceive $db " select page_title from page, categorylinks where cl_from = page_id and page_namespace in (0, 1) and page_title in ([join $orpt {, }]) and (cl_to like 'Wikipedia:Weblink_offline%' or cl_to like 'Wikipedia:Defekte_Weblinks%') order by page_title ;" pt { set pt [sql -> $pt] lappend wDWblock "\[\[:$pt\]\] \[\[Diskussion:$pt|(Disk)\]\]" } unset -nocomplain orpt } incr wcount [llength [set wDWblock [lsort -unique $wDWblock]]] set wDWblock [join $wDWblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wDWbranch {;30x15px|text-unten|Defekter Weblink|link=:Kategorie:Wikipedia:Defekte Weblinks Defekter Weblink (auf 50 Artikel beschränkt):} if ![empty wDWblock] { append WORKLIST \n$wDWbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wDWblock } elseif {({ALL} in $ALWAYSSHOW && {-DW} ni $ALWAYSSHOW) || {DW} in $ALWAYSSHOW} { append WORKLIST \n$wDWbranch\n$EMPTY } } #wVS if {({ALL} in $LISTS && {-VS} ni $LISTS) || {VS} in $LISTS} { set wVSblock {} set wVSmatch [catselect wVS -- $catdb $icatdb]

  1. puts wVSmatch:$wVSmatch

if ![empty wVSmatch] { foreach wVS [lsort -unique $wVSmatch] {lappend orplt '[sql <- $wVS]'} mysqlreceive $db " select pl_title from pagelinks, page where page_id = pl_from and pl_title in ([join $orplt ,]) and pl_from_namespace = 2 and pl_namespace = 0 and page_title = 'MerlBot/Verwaiste_Artikel' and page_namespace = 2 order by pl_title ;" plt { lappend wVSblock "\[\[:[sql -> $plt]\]\]" } unset -nocomplain orplt } incr wcount [llength $wVSblock] set wVSblock [join $wVSblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wVSbranch {;30x15px|text-unten|Verwaiste Seiten|link=:Wikipedia:WikiProjekt Verwaiste Seiten Verwaist:} if ![empty wVSblock] { append WORKLIST \n$wVSbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wVSblock } elseif {({ALL} in $ALWAYSSHOW && {-VS} ni $ALWAYSSHOW) || {VS} in $ALWAYSSHOW} { append WORKLIST \n$wVSbranch\n$EMPTY } } #wSOL if {({ALL} in $LISTS && {-INT} ni $LISTS) || {INT} in $LISTS} { set wINTblock {} set wINTmatch [catselect wINT -- $catdb $icatdb]

  1. puts wINTmatch:$wINTmatch

if ![empty wINTmatch] { foreach wINT [lsort -unique $wINTmatch] {lappend orpt '[sql <- $wINT]'} mysqlreceive $db " select page_title from page, categorylinks where cl_from = page_id and page_namespace = 0 and page_title in ([join $orpt ,]) and cl_to like '%lastig' order by page_title ;" pt { lappend wINTblock "\[\[:[sql -> $pt]\]\]" } unset -nocomplain orpt } incr wcount [llength $wINTblock] set wINTblock [join $wINTblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wINTbranch {;30x15px|text-unten|Internationalisierung|link=:Kategorie:Wikipedia:Staatslastig Internationalisierung:} if ![empty wINTblock] { append WORKLIST \n$wINTbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wINTblock } elseif {({ALL} in $ALWAYSSHOW && {-INT} ni $ALWAYSSHOW) || {INT} in $ALWAYSSHOW} { append WORKLIST \n$wINTbranch\n$EMPTY } } if {({ALL} in $LISTS && {-W} ni $LISTS) || {W} in $LISTS} { set wWblock {} set wWmatch [catselect wW -- $catdb $icatdb]

  1. puts wWmatch:$wWmatch

if ![empty wWmatch] { foreach wW [lsort -unique $wWmatch] {lappend orpt '[sql <- $wW]'} mysqlreceive $db " select page_title from page, categorylinks where cl_from = page_id and page_namespace = 0 and page_title in ([join $orpt ,]) and cl_to = 'Wikipedia:Widerspruch' order by page_title ;" pt { lappend wWblock "\[\[:[sql -> $pt]\]\]" } unset -nocomplain orpt } incr wcount [llength $wWblock] set wWblock [join $wWblock "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wWbranch {;30x15px|text-unten|Widerspruch|link=:Kategorie:Wikipedia:Widerspruch Widerspruch:} if ![empty wWblock] { append WORKLIST \n$wWbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wWblock } elseif {({ALL} in $ALWAYSSHOW && {-W} ni $ALWAYSSHOW) || {W} in $ALWAYSSHOW} { append WORKLIST \n$wWbranch\n$EMPTY } } if {({ALL} in $LISTS && {-RD} ni $LISTS) || {RD} in $LISTS} { set wRDblock {} set wRDmatch [catselect wRD -- $catdb $icatdb]

  1. puts wRDmatch:$wRDmatch

if ![empty wRDmatch] { foreach wRDpair [lsort -unique $wRDmatch] { foreach wRD $wRDpair {lappend orpt '[sql <- [join [dict values [regexp -inline -- {^(.*?)(?:#|$)} $wRD]]]]'} lassign {} lwRDpair lct mysqlreceive $db " select cl_to from page, categorylinks where cl_from = page_id and page_namespace = 0 and page_title in ([join $orpt ,]) and cl_to like 'Wikipedia:Redundanz\_%' order by page_title ;" ct { if ![empty ct] {lappend lct " \[\[:[string map {{Redundanz } Redundanz/} [sql -> $ct]]|(Disk)\]\]"} } foreach wRDpairitem $wRDpair {lappend lwRDpair \[\[:$wRDpairitem\]\]} lappend wRDblock "[join $lwRDpair { ⇄ }][join [lsort -unique $lct]]" unset -nocomplain orpt lct } } incr wcount [llength $wRDblock] set wRDblock [join [lsort -unique $wRDblock] "\n[expr {$listformat eq {SHORTLIST} ? {·} : {*}}] "] set wRDbranch {;30x15px|text-unten|Redundanz|link=:Kategorie:Wikipedia:Redundanz Redundanz:} if ![empty wRDblock] { append WORKLIST \n$wRDbranch\n[expr {$listformat eq {SHORTLIST} ? {} : $listformat eq {CLIST} ? {# } : {* }}]$wRDblock } elseif {({ALL} in $ALWAYSSHOW && {-RD} ni $ALWAYSSHOW) || {RD} in $ALWAYSSHOW} { append WORKLIST \n$wRDbranch\n$EMPTY } } return [string map {& {\&}} $WORKLIST] } }

foreach {portal data} $e { set repeat 0 while 1 { if {[catch { set summary {}

  1. set portal {Portal:Berlin/Arbeitsliste}
  2. set portal {Benutzer:Flominator/Freiburg}
  3. set portal {Portal:Österreich/Baustellen}
  4. set portal {Portal:Leichtathletik/Neue Artikel}
  5. set portal {Portal:Tod/Verbesserungswürdige Artikel}
  6. set portal {Benutzerin:TaxonBota/qstest}
  7. set portal {Portal:Muntenien/Neue Artikel}
  8. set portal {Wikipedia:Redaktion Religion/Wartung/Gesamtübersicht}
  9. set data [dict get $e $portal]

puts \n$portal:

  1. if {$portal ni $lwportal} {continue}
  2. if {$portal ne {Portal:Bahn/Mitmachen/Löschkandidaten und QS}} {continue}

if {$portal ne {Benutzer:Bungert55/Wartungsseiten/Eifel} && !$aaaa} {continue} else {incr aaaa} if {$portal eq {Benutzer:Bungert55/Wartungsseiten/Eifel}} {continue} set oconts [conts t $portal x]

  1. puts [edit user:TaxonBota/qstest1 test [string map {{\&} &} $oconts]]

set nportal $oconts if {$data ne {x}} { if {$portal eq {Portal:Computerspiele/Neue Artikel}} { set lncportal [computerspiele $portal $nportal $data] } else { set lncportal [portals $portal $nportal $data] } if ![empty lncportal] {set lncportal \n$lncportal} set nportal [string map {{\&} &} [regsub -- {().*} $nportal \\1$lncportal\n\\1]] } if {$data ne {x} && $portal in $lqsportal} { set br 1 set QSWORKLIST [qsw $portal] if {$listformat ne {TABLE}} { set nportal [string map {{\&} &} [regsub -- {().*} $nportal \\1$QSWORKLIST\n\\1]] set summary "Bot: NeueArtikel: [tdot $nacount]; QSWORKLIST: [tdot $qscount]" } else { set summary "Bot: NeueArtikel: [tdot $nacount]" } } elseif {$data eq {x}} { set br 2 set QSWORKLIST [qsw $portal] if {$listformat eq {TABLE}} {continue} set nportal [string map {{\&} &} [regsub -- {().*} $nportal \\1$QSWORKLIST\n\\1]] set summary "Bot: QSWORKLIST: [tdot $qscount]" } else { set br 3 set summary "Bot: NeueArtikel: [tdot $nacount]" }

if {$portal in $lwportal} { set br 4 set WORKLIST [w $portal]

  1. puts $WORKLIST

if {$listformat ne {TABLE}} { set nportal [string map {{\&} &} [regsub -- {().*} $nportal \\1$WORKLIST\n\\1]] if ![empty summary] { append summary "; WORKLIST: [tdot $wcount]" } else { set summary "Bot: WORKLIST: [tdot $wcount]" } } }

  1. set WORKLIST [w $portal]
  2. puts $WORKLIST\n$wcount
  3. puts [edit user:TaxonBota/qstest1 test [string map {{\&} &} $WORKLIST]] ; exit


if {$nportal ne $oconts} {

  1. puts [edit user:TaxonBota/qstest1 "$summary|\[\[$portal\]\]" $nportal / minor] ; gets stdin
  2. if {$br != 3} {puts [edit user:TaxonBota/qstest "$summary|\[\[$portal\]\]" $nportal / minor] ; gets stdin}

puts $br:[edit $portal $summary $nportal / minor]

  1. if {[incr xx] < 15} {gets stdin}

} }] != 1} { break } else { if {[incr repeat] == 1} { set lang test ; source langwiki.tcl ; #set token [login $wiki] puts [edid 63277 {Log: NeueArtikel} {} / appendtext "\n* [ clock format [clock seconds] -format %Y-%m-%dT%TZ ] NeueArtikel: Fehler in \[\[:w:de:$portal\]\]!"] set lang dea ; source langwiki.tcl ; #set token [login $wiki] } if {$repeat == 10} { set lang test ; source langwiki.tcl ; #set token [login $wiki] puts [edid 63277 {Log: NeueArtikel} {} / appendtext "\n* [ clock format [clock seconds] -format %Y-%m-%dT%TZ ] NeueArtikel: Fehler in \[\[:w:de:$portal\]\]!"] set lang dea ; source langwiki.tcl ; #set token [login $wiki] break } } } }

puts "\nend of task" set lang test ; source langwiki.tcl ; #set token [login $wiki] puts [edid 63277 {Log: MB4} {} / appendtext "\n* [clock format [clock seconds] -format %Y-%m-%dT%TZ] NeueArtikel4: Task finished!"]


</source> -->