commit 6f18b2f26268bbd31ab434fa44ae4b2942892cdb from: jrmu date: Mon Apr 03 04:00:38 2023 UTC Daily backup commit - 5d4a825ed91e71b35b3917e56e489f554f0d3bcd commit + 6f18b2f26268bbd31ab434fa44ae4b2942892cdb blob - ef6633274be8a8a5532cb1028bf4d82e5b4d5102 blob + 4b24bad663ef627e50fdc255690e44e267af975f --- wiki.d/.pageindex +++ wiki.d/.pageindex @@ -1,3 +1,4 @@ +Openbsd.Warith:1680454970: Openbsd.Dns Openbsd.Backup Openbsd.Netcat : 6e8e5b2448356bb48f642dd18115aaaaca7b6dcb d2312f8fcd9de09574d7370e8de058d91322686c nuulsail2tydzzhwox9paz1l6sbovlvx thtqf8ifeee5ox0i automatically configuration documentation yourpackname alphanumeric instructions abcd3fgh1jk1 yourhubname controlling explanation information networkname compromised packconfig binarypass recognized afterwards wraithpath administer protection officially additional configured connection connected somewhere supported dccprefix reference generated timestamp character confusing providing something libcrypto different contains undernet channels replaced yournick chanmode specific software optional username enclosed hostname creating matching separate accounts unhashed updating terminal password choosing security directly continue settings hostmask yourself stronger cherry07 chaninfo services versions warrning groupdel oaijmnop powerful requires written because fruit01 hubnick urandom botpack openbsd reasons several nologin libexec complex fruit02 botnick portmin libstdc without include specify warning install comment portmax eggdrop updated dynamic fruit03 address homedir cookies userdel records working disable chanset patched command however provide private pkg_add useradd default joining release delete ircnow libssl ircnet should source script tested stable github create ignore resolv warith server netcat backup leaves giving sample fruit2 unable autoop before salted client chattr limits fastop fruit1 botcmd secure ensure public manage handle botnet manual better entire stolen hashes access values press enter mkdir print user2 saved above paste whois setup chown flags there mjoin manop flood users efnet durt8 64100 vhost waste since shell three 64000 nodes their 12742 means front lines voice sends https state opped takes valid doesn owner wrote these salt2 keyed salt1 suxsc first build gmake which while twice forth begin track store title guide newer leaf each both bots echo this safe that must more than will much same want data bot3 fill like look then ipv6 pick fold head show free quit have hubs goes bot5 bot4 bot2 such 1025 kick deop mdop help ctcp type find into used last easy cons pros sha1 once need dest copy done read keep wiki html note very them file repo doas xvzf true null been sbin chsh libm uses code gets hung ctrl ops ntk usr dev but org tar 10a awk run ssh hit scp may bad ksh dns can yes mop tmp ftp any won put za by gz 29 43 45 v1 47 z0 30 28 16 pc 46 96 PmWiki.UTF-8:1680407311: PmWiki.Internationalizations PmWiki.Upgrades PmWiki.I18nVariables Skins.Amber PmWiki.UploadVariables Cookbook.ISO8859MakePageNamePatterns PmWiki.LocalCustomizations Cookbook.UTF-8 : iso8859makepagenamepatterns internationalizations localcustomizations defaultpagecharset uploadvariables uploadnamechars modifications configuration automatically i18nvariables htmlstylesfmt independently include_once اليسار اليمين installation differently explanation possibility recommended attachments attributes dictionary characters management especially vocabulary understand يتدفق élysées languages correctly including operating directive alphabets inclusion wikipedia pageindex migration pagelists encodings direction markupend hungarian generally français supported currently beginning something function cookbook metadata searches restrict francais european versions concerns enabling instance htaccess settings possible accented distinct upgrades portable flexible existing converts supports النص problems contains browsers displays letters rebuild persian shouldn scripts instead uploads elysees enabled servers encoded classes already systems summary between engines complex certain results missing without written example flowing specify decoded turkish actions created unicode reasons arabic pmwiki allows breaks within titles hebrew هذا إلى better others easier handle change likely xlpage champs mostly before prefer people rename actual delete latest modern useful recent sample future editor review widely fairly simple served double highly adding moment cannot older links farsi notes words start pmhlt entry names pages lines these wikis offer right group while wrong could check there array flows files terms match which below ascii a7ais czech plain 89lys today latin order skins amber doesn using asian later first their cache major works depth after this your when left from more copy they need will case tips urdu only them text urls used body have swap side full good save also من root show sure near that a9es come thus easy disk ansi many less byte well docs uses risk bar utf box are bom may php one org seo way yet don ltr rtl got fix new non has etc c3 2 PmWiki.WikiStyles:1680407079: PmWiki.WikiWord PmWiki.WikiStyleColors PmWiki.BlockMarkup PmWiki.Tables PmWiki.TableDirectives PmWiki.GroupHeaders PmWiki.WikiAdministrator PmWiki.LocalCustomizations PmWiki.CustomWikiStyles Cookbook.OutlineLists PmWiki.LayoutVariables PmWiki.WikiStyleExamples PmWiki.TextFormattingRules PmWiki.ListStyles Cookbook.WikiStylesPlus : textformattingrules localcustomizations wikiadministrator wikistyleexamples customwikistyles enablehighlight tabledirectives layoutvariables wikistylecolors specifications wikistylesplus wikistyleapply enablepmsyntax justification documentation htmlheaderfmt automatically outlinelists consectetuer relationship preformatted highlighting combinations wikistylecss groupheaders knownissues blueberries blockmarkup programming immediately incorporate highlightjs definitions cellspacing occurrences encountered differently cellpadding properties attributes beautifier lightgreen identifies background identifier stylesheet relatively everything tangerines themselves correspond additional styleclass decoration predefined liststyles recognized sadipscing accesskey shortcuts markupend knowledge associate directory modifying undefined conflicts parameter otherwise languages divisions thumbnail mentioned providing asterisks specified lowercase shorthand specially character displayed paragraph lightblue propindex blooberry following justified cascading correctly isenabled whichever considers beginning searches readable advanced suffixed contains comments required eggplant multiple warnings cookbook includes contents audience meanings tabtable indented wikiword changing floating overflow tableend percents vertical anything wrapping sentence previous indexdot centered elements instance jsdelivr newlines enabling defining reversed supposed breaking function commands external applies summary applied between another current bgcolor instead control because authors fuchsia regular specify letters heading whether however several defines follows escaped browser written foreach secrets convert becomes printed ordered exactly seealso version classes library without styling various section columns handled wrapped decimal release feature request treated rowspan colspan default adjust return pmwiki height listed margin weight normal config affect change tables images dotted border values anchor number starts effect caveat middle entire ffeeee quotes aa3333 maroon purple reused orange assign lfloat framed rframe lframe sizing window italic styled cellnr silver newwin decide should easier saying shared common yellow ddddff ffffcc before blocks latest script larger second global either target _blank hidden source appear rfloat always rrggbb update ff7f00 floats family server within apples bottom hspace called basket vspace versus create allows build horiz first pages above https among often basic pmhlt later since width scope these makes opens links signs isset items avoid solid after olive limes third loads mambo meant white black until files roman upper right boxes clear ipsum dolor place elitr alpha align being using still lorem words about valid doesn there many note uses navy this then sort font some bots that idea they tags easy grey left much none gray bold edit need code into aqua teal copy most name both sets site wide href from same only work thus your view such have good will like take part more help want oops size next sure even hide last sdva nbsp null cdn net may hex 0em can php via src 6em img two org 119 pub 2px pct web rgb too put 1px its has try raw top fn 50 by h3 h2 h1 h6 h5 h4 Chess.Limitsbot:1680400163: : readlinetimeout gnuchess_path outputstream startprocess inputstream chess_arena threadpool executable readstream printlines newsocket writeline limitsbot recvline chessbot executes contains strutils argument privmsg channel message trysend discard connect version compile threads release streams author prints admins osproc server ircnow string import const split flush sleep while needs hello using close quits break spawn local data help join else peek only this case 6667 1000 nick echo open text user pong ping true elif args jrmu std var let the usr cmd nim len for and bin bye org not 001 of 2 4 5 3 blob - /dev/null blob + 1600955433f55dc9cd502ee62fb7ef2f470d38f3 (mode 644) --- /dev/null +++ wiki.d/Chess.Limitsbot @@ -0,0 +1,15 @@ +version=pmwiki-2.3.20 ordered=1 urlencoded=1 +agent=w3m/0.5.3+git20220429 +author=jrmu +charset=UTF-8 +csum= +ctime=1680400163 +host=38.87.162.8 +name=Chess.Limitsbot +rev=1 +targets= +text=[@%0a# compile using "nim c -d:release --threads:on ChessBot.nim"%0aimport std/net, std/strutils, std/osproc, std/streams, std/os, std/threadpool%0a%0aconst SERVER = "irc.ircnow.org"%0aconst POR = 6667%0aconst CHANNEL = "#chess_arena"%0aconst NICK = "ChessBot"%0aconst ADMINS = ["Limits", "jrmu"]%0aconst AUTHOR = "Limits"%0aconst GNUCHESS_PATH = "/usr/local/bin/gnuchess"%0a%0avar ch: Channel[string]%0aopen(ch)%0a%0aproc readLineTimeout(readStream: Stream): int =%0a while true:%0a let k = readStream.readLine%0a while not ch.trySend(k):%0a sleep(10)%0a%0aproc printLines(socket: Socket, channel: string, text: string) =%0a for line in text.split("\n"):%0a socket.send("PRIVMSG " & channel & " :" & line & "\n")%0a%0alet gnuchess = startProcess(GNUCHESS_PATH, args = ["-m"])%0adiscard spawn readLineTimeout(gnuchess.outputStream)%0a%0asleep(1000)%0alet s = ch.peek%0afor _ in 1..%3cs:%0a discard ch.recv%0a%0alet socket = newSocket()%0asocket.connect(SERVER, Port(POR))%0a%0asocket.send("NICK " & NICK & "\n")%0asocket.send("USER " & NICK & " * 0 :IRC Chess Bot\n")%0a%0awhile true:%0a var data = socket.recvLine().split()%0a echo("IRC: ", data)%0a if data[0] == "PING":%0a socket.send("PONG " & data[1] & "\n")%0a elif data[0] == "":%0a discard%0a elif data[1] == "001":%0a socket.send("JOIN " & CHANNEL & "\n")%0a elif data[1] == "PRIVMSG" and data[3] == ":!chess":%0a if data.len > 4:%0a case data[4]%0a of "hello": socket.send("PRIVMSG " & data[2] & " :HELLO " & data[0].split("!")[0][1 .. ^1] & "\n")%0a of "author": socket.send("PRIVMSG " & data[2] & " :Author = " & AUTHOR & "\n")%0a of "version": socket.send("PRIVMSG " & data[2] & " :Version = 0.1.0\n")%0a of "gnuchess":%0a gnuchess.inputstream.writeLine(data[5..^1].join(" "))%0a gnuchess.inputstream.flush%0a sleep(100)%0a let s = ch.peek%0a for _ in 1..%3cs:%0a let k = ch.recv%0a socket.send("PRIVMSG " & data[2] & " :" & k & "\n")%0a discard ch.recv%0a of "quit":%0a if ADMINS.contains(data[0].split("!")[0][1 .. ^1]):%0a socket.send("PRIVMSG " & data[2] & " :BYE\n")%0a gnuchess.close%0a socket.close%0a break%0a of "admins":%0a socket.send("PRIVMSG " & data[2] & " :" & ADMINS.join(" ") & "\n")%0a of "help":%0a socket.printLines(data[2], """ChessBot%0a!chess author prints author%0a!chess version prints version%0a!chess gnuchess %3ccmd> executes cmd in gnuchess and prints the output%0a!chess admins prints bot admins%0a!chess quit quits the ChessBot (only executable by bot admins)%0a!chess help prints this message""")%0a else:%0a socket.send("PRIVMSG " & data[2] & " :Needs an argument\n")%0a@]%0a +time=1680400163 +author:1680400163=jrmu +diff:1680400163:1680400163:=1,82d0%0a%3c [@%0a%3c # compile using "nim c -d:release --threads:on ChessBot.nim"%0a%3c import std/net, std/strutils, std/osproc, std/streams, std/os, std/threadpool%0a%3c %0a%3c const SERVER = "irc.ircnow.org"%0a%3c const POR = 6667%0a%3c const CHANNEL = "#chess_arena"%0a%3c const NICK = "ChessBot"%0a%3c const ADMINS = ["Limits", "jrmu"]%0a%3c const AUTHOR = "Limits"%0a%3c const GNUCHESS_PATH = "/usr/local/bin/gnuchess"%0a%3c %0a%3c var ch: Channel[string]%0a%3c open(ch)%0a%3c %0a%3c proc readLineTimeout(readStream: Stream): int =%0a%3c while true:%0a%3c let k = readStream.readLine%0a%3c while not ch.trySend(k):%0a%3c sleep(10)%0a%3c %0a%3c proc printLines(socket: Socket, channel: string, text: string) =%0a%3c for line in text.split("\n"):%0a%3c socket.send("PRIVMSG " & channel & " :" & line & "\n")%0a%3c %0a%3c let gnuchess = startProcess(GNUCHESS_PATH, args = ["-m"])%0a%3c discard spawn readLineTimeout(gnuchess.outputStream)%0a%3c %0a%3c sleep(1000)%0a%3c let s = ch.peek%0a%3c for _ in 1..%3cs:%0a%3c discard ch.recv%0a%3c %0a%3c let socket = newSocket()%0a%3c socket.connect(SERVER, Port(POR))%0a%3c %0a%3c socket.send("NICK " & NICK & "\n")%0a%3c socket.send("USER " & NICK & " * 0 :IRC Chess Bot\n")%0a%3c %0a%3c while true:%0a%3c var data = socket.recvLine().split()%0a%3c echo("IRC: ", data)%0a%3c if data[0] == "PING":%0a%3c socket.send("PONG " & data[1] & "\n")%0a%3c elif data[0] == "":%0a%3c discard%0a%3c elif data[1] == "001":%0a%3c socket.send("JOIN " & CHANNEL & "\n")%0a%3c elif data[1] == "PRIVMSG" and data[3] == ":!chess":%0a%3c if data.len > 4:%0a%3c case data[4]%0a%3c of "hello": socket.send("PRIVMSG " & data[2] & " :HELLO " & data[0].split("!")[0][1 .. ^1] & "\n")%0a%3c of "author": socket.send("PRIVMSG " & data[2] & " :Author = " & AUTHOR & "\n")%0a%3c of "version": socket.send("PRIVMSG " & data[2] & " :Version = 0.1.0\n")%0a%3c of "gnuchess":%0a%3c gnuchess.inputstream.writeLine(data[5..^1].join(" "))%0a%3c gnuchess.inputstream.flush%0a%3c sleep(100)%0a%3c let s = ch.peek%0a%3c for _ in 1..%3cs:%0a%3c let k = ch.recv%0a%3c socket.send("PRIVMSG " & data[2] & " :" & k & "\n")%0a%3c discard ch.recv%0a%3c of "quit":%0a%3c if ADMINS.contains(data[0].split("!")[0][1 .. ^1]):%0a%3c socket.send("PRIVMSG " & data[2] & " :BYE\n")%0a%3c gnuchess.close%0a%3c socket.close%0a%3c break%0a%3c of "admins":%0a%3c socket.send("PRIVMSG " & data[2] & " :" & ADMINS.join(" ") & "\n")%0a%3c of "help":%0a%3c socket.printLines(data[2], """ChessBot%0a%3c !chess author prints author%0a%3c !chess version prints version%0a%3c !chess gnuchess %3ccmd> executes cmd in gnuchess and prints the output%0a%3c !chess admins prints bot admins%0a%3c !chess quit quits the ChessBot (only executable by bot admins)%0a%3c !chess help prints this message""")%0a%3c else:%0a%3c socket.send("PRIVMSG " & data[2] & " :Needs an argument\n")%0a%3c @]%0a +host:1680400163=38.87.162.8