-
Posts
5998 -
Joined
-
Last visited
-
Days Won
17
Content Type
Profiles
Forums
Downloads
Gallery
Events
Articles
Everything posted by chain
-
-
-
-
-
-
-
-
-
-
-
So its been awhile since ive scripted but im back on it in the IRC-Community server. between here and IRC server i'm having fun feel like a kid again 😎 and will be bugging err0r alot lol. Eithier way its fun!!
-
Need to fix a few things such as dialog not showing emoticons on bottom of nicklist, and upate the dialogs really old looking lol
-
-
-
Version 1.0.0
2 downloads
Установка: - Скачайте файл, установите в 2 щелчка мыши на ваш компьютер и подключайтесь к чату! Описание: - Данная сборка программы является лёгкой скриптовой модификацией классического клиента "mIRC v6.35" для быстрого онлайн общения в IRC Чате, которая не претендует на звание лучшего клиента в своём роде! Удобное меню и красивое оформление сделает ваше общение простым и приятным. В чате есть возможность создавать и регистрировать свои личные комнаты (каналы) под любым названием "#MyChannel" для общения сразу со всеми пользователями, администрировать и назначать модераторов, устанавливать всевозможные защитные режимы или наказывать и удалять отдельных пользователей при помощи кика и бана. А так же в чате можно общаться отдельно с каждым пользователем в приватных комнатах тет-а-тет. Обновление: * Немного расширился функционал меню. * Появилось отдельное окно для текстовых цветных смайлов (Вызов по кнопке F12). * Добавлен разный фон для каналов, приватов и статус окон. * Список открытых окон теперь размещается на боковой панели слева. -
Version 1.0.0
1 download
Описание: - Представляем новый бесплатный JAVA клиент для IRC Чата. Экономный трафик, простота в управлении и красивый дизайн, это всё, что нужно для общения в IRC чате! Есть возможность общения на общих #каналах со всеми, регистрировать свои #каналы, управлять и раздавать статусы, а так же общаться лично в привате с каждым по отдельности! - Для входа в чат необходимо заполнить профиль пользователя указав два ника, емайл, идент и реальное имя. - Знакомьтесь! Общайтесь! Влюбляйтесь! Мы старались для вас. Обновление: * Полностью переработано меню списка ников, меню канала, меню приватов и меню статус окна на более удобное интуитивное порядковое расположение. * Добавлены новые опции, а так же приветствия, слапы, текстовые цветные смайлы и удобное меню администратора. * Добавлены новые горячие клавиши. -
Version 1.0.0
1 download
Примечание: Установка: Распакуйте архив в удобное для вас место и запустите из папки файл с расширением "EXE". Дополнительные инструкции по работе с клиентом вы найдёте внутри папки. Описание: Для того, чтобы зайти в IRC сеть, Вам необходим IRC-клиент. Данная программа является одним из таких клиентов для IRC чата. При подключении к IRC серверу, после выполнения команды "/list" пользователь видит список доступных каналов, в которые он может войти. Канал представляет собой виртуальную «комнату», в которой может находиться сразу большая группа пользователей, в пределах лимита, установленного администрацией. Все сообщения оставленные на канале будут видны другим участникам канала, пока они там находятся. Каждый канал имеет своё название, которое всегда начинается с символа "#" и может иметь свою тему для обсуждения. Иногда тема обсуждения может следовать из самого названия канала. Канал может иметь свои индивидуальные настройки, так называемые "mode" - режимы канала. Также на канале могут быть установлены свои правила общения, на усмотрение модераторов канала. Рекомендуется предварительно ознакомиться с внутренними правилами канала и общими правилами сети, в которую вы подключились, по команде "/rules", чтобы не получить «БАН» (запрет на общение или подключение) за нарушение правил. После входа на канал пользователь сможет видеть, что пишут другие участники канала и сможет сам принять участие в беседе, если для этого нет ограничений. Кроме того клиент предоставляет возможность переписываться лично (в привате) с каждым участником чата вне зависимости от его нахождения на канале. Обновление: 1. Обновлён файл "EXE" до необходимой версии с поддержкой чата в UTF-8 кодировке. 2. Проведена адаптация клиента с редакцией скриптов для работы в UTF-8 кодировке. 3. Отключены все скрипты взаимодействующие с DLL, которые мешали корректной работе клиента. 4. Исправлены найденные ошибки в работающих скриптах. 5. Создано новое стартовое окно "Данные юзера" для ввода пользовательских данных и кнопка на верхней панели управления. 6. Добавлена новая тема "Caramel" (карамельный стиль) - для любителей светлого фона. 7. Добавлена новая тема "Dark" (тёмный стиль) - для любителей тёмного фона. 8. Удалены кнопки "Winamp" с верхней панели управления за ненадобностью. (Плеер больше не поддерживается). 9. Заменены старые файлы смайлов на новую рабочую версию для совместимости с последней версией файла "EXE". 10. Исправлен смайл "😎" «колобок в очках» на "8–)", чтобы он не отображался в таймере с часами и в других подобных сообщениях. -
This is a small update that adds features and addresses a number of issues reported by users since the last release. It includes improvements, changes and fixes, including: Added support for big float calculations using MAPM library.Fixed script parser bug when handling non-while/if { } brackets.Updated zlib library to v1.2.13.Fixed !. command prefixes used infront of while/if commands affecting following command.Added identifiers $cbrt(), $log2(), $powmod(), $modinv(), $gcd(), and $lcm().Changed confirm paste in a single line editbox to only warn if the line contains CRLF characters.Fixed script popup menu in menubar not working in fullscreen mode.Updated OpenSSL library to v1.1.1s.Changed $totp()/$htop() to improve parameter validation and support longer timestep and digits.Changed how $bfind().regex matches against a &binvar.Updated CA root certificates cacert.pem file.Updated TagLib library to v1.13.In total, there have been over 20 changes since the last release.For a full list of recent changes, please see the versions.txt file. As always, the latest version of mIRC can be downloaded from the download page. Read full article @ https://www.mirc.com/news.html
-
In the coming weeks I will be working on the sister site of ours called coders-irc. This site is mainly knowledge on IRC servers & Scripting & other various programs that are used on IRC servers. We have our Web developer who when he gets a chance will be working on a Forum for here. We have started to add a few pages on the top menu, & will continue adding IRC scripts & Snippets. Our goal to to keep all irc scripts and snippets alive and handy that people from all various IRC servers will continue to use & continue to make, these snippets and IRC scripts as once was on Hawkee. IRC will never die as people think it has. IRC is alive and kicking thanks to people who run the server Nerds who generate all servers together by pylinking and creating a huge mass of IRC users all together. There are people that want to see IRC once again grow huge as it still unites people from various countries to chat together. If you have idea's for the coders-irc site do come on the server & bring your idea's or if you need to see what pylinking is all about come to the server and meet the people that can set you up. Our Server Links 1. cs1.coders-irc.net 2. cs3.coders-irc.net 3. irc.coders-irc.net ( round robin)
-
A mimic of the uno card game. This game is alot of fun. I've been playing with a couple of my friends everyone loves it. If you don't know how to play its very easy to learn. There is also a top 10 list so everyone can compete to be the best. Heres a list of commands: !uno - This command is used to start an uno game. The player that types this becomes player 1. !join - This allows you to join the game (at any time). !deal - This command starts the game (as long as you have 2+ players). It can only be typed by player 1 (the person who typed !uno). !unostop - This command ends the current uno game and can only be used by player 1. !quit - This command removes you from the current game. If used by player 1, player 2 becomes player 1 and in charge of the game. !kickplayer - This command allows player 1 to kick people from the current game for some reason like if they don't know how to play. !cards - This command shows you your cards. !count - This command shows all the players and the number of cards they have left. It also shows who's turn it is. !topcard - This command shows the top card. !draw - This command draws you a card from the deck. !pass - This command passes to the next person (you must draw once to use this). !play - This command allows you to play cards. !score - This command shows you how many wins the given nick has. !top10 - This command shows you the top 10 uno players and their wins. on *:start:{ hmake uno 50 if ($isfile(uno.dat)) hload uno uno.dat } on *:exit: hsave uno uno.dat on *:nick:{ var %i = $hget(0), %c while (%i) { if ($newnick ison $hget(%i)) { %c = $v2 break } dec %i } if ($hget(%c,$nick)) { hadd %c $newnick $v1 hadd %c $hfind(%c,$nick).data $newnick } } on *:quit:{ var %i = $hget(0), %c while (%i) { if ($me ison $hget(%i)) && ($hget($hget(%i),$nick)) remplayer %c $nick $nick has been removed from the current game. dec %i } } on *:part:#:{ if (!$hget(#)) return if ($hget(#,$nick)) remplayer # $nick $nick was removed from the current game. elseif ($nick == $me) hfree # } on *:kick:#:{ if (!$hget(#)) return if ($hget(#,$nick)) remplayer # $nick $nick was removed from the current game. elseif ($nick == $me) hfree # } on $*:text:/^[@!.](uno)?score/Si:#:{ var %u = $iif($2,$2,$nick) $iif($left($1,1) == @,msg #,notice $nick) %u has $bytes($iif($hget(uno,%u),$v1,0),b) wins. } on $*:text:/^[@!.](uno)?top10$/Si:#:{ var %x, %i = $hget(uno,0).item, %o while (%i) { %x = $instok(%x,$hget(uno,$hget(uno,%i).item),0,32) dec %i } %x = $sorttok(%x,32,nr) %i = 1 while (%i <= 10) { if (!$hget(uno,%i).item) break %o = $addtok(%o,$ord(%i) $+ : $hfind(uno,$gettok(%x,%i,32),$calc($findtok(%o,$gettok(%x,%i,32),0,32) +1)).data - $bytes($gettok(%x,%i,32),b) |,32) inc %i } $iif($left($1,1) == @,msg #,notice $nick) $left(%o,-1) } on $*:text:/^[@!.]uno$/Si:#:{ if ($hget(#,players)) notice $nick There is already an uno game in progress in # $+ . else { if ($hget(#)) hfree # hmake # hadd # p1 $nick hadd # $nick $cards(7) hinc # players msg # $nick has started 3U04N12O v2.0 by BrAndo. Type !join to join the game. notice $nick Type !deal to start the game. } } on $*:text:/^[@!.]?join$/Si:#:{ if (!$hget(#,p1)) return elseif ($hget(#,$nick)) notice $nick You are already playing! else { hinc # players hadd # p $+ $hget(#,players) $nick hadd # $nick $cards(7) msg # $nick will be player $hget(#,players) $+ . } } on $*:text:/^[@!.](deal|start( ?game)?|play|begin)$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. elseif ($hget(#,turn)) notice $nick The game has already started. elseif ($nick != $hget(#,p1)) msg # Only $v2 can start the game. elseif ($hget(#,players) !> 1) msg # You need atleast two people to play. else { var %c = 01 while (01* iswm %c) %c = $cards(1) hadd # top %c hadd # turn 1 hadd # rev $true msg # $hget(#,p1) $+ 's turn. msg # Top card: $hget(#,top) notice $nick Your cards: $hget(#,$nick) } } on $*:text:/^[@!.](endgame|uno(stop|end))$/Si:#:{ if (!$hget(#,p1)) return elseif ($nick != $hget(#,p1)) msg # Only $v2 can end the game. else { hfree # msg # Game ended by $nick $+ . } } on $*:text:/^[@!.]quit$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. else remplayer # $nick $nick has left the game. } on $*:text:/^[@!.]kickplayer (.+)$/Si:#:{ if (!$hget(#,p1)) return elseif ($nick != $hget(#,p1)) msg # Only $v1 can kick people from the game. elseif (!$hget(#,$regml(1))) msg # $regml(1) is not in this game. else remplayer # $regml(1) $regml(1) has been kicked from the game by $nick $+ . } on $*:text:/^[@!.](show)?(hand|cards?)$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. else notice $nick Your cards: $hget(#,$nick) } on $*:text:/^[@!.](uno)?count$/Si:#:{ if (!$hget(#,p1)) return else { $iif($left($1,1) == @,msg #,notice $nick) Current score: $regsubex($str(.,$hget(#,players)),/./g,$+($hget(#,p\n),:,$chr(32),$numtok($hget(#,$hget(#,p\n)),32),$chr(32))) $iif($left($1,1) == @,msg #,notice $nick) Its $hget(#,p $+ $hget(#,turn)) $+ 's turn. } } on $*:text:/^[@!.]topcard$/Si:#:{ if (!$hget(#,p1)) return msg # Top card: $hget(#,top) } on $*:text:/^[@!.]draw ?(card)?$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. elseif ($hget(#,p $+ $hget(#,turn)) != $nick) notice $nick It is not your turn. else { var %c = $cards(1) hadd # $nick $instok($hget(#,$nick),%c,0,32) notice $nick You drew: %c hadd # pass $nick } } on $*:text:/^[@!.]pass$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. elseif ($hget(#,p $+ $hget(#,turn)) != $nick) notice $nick It is not your turn. elseif ($hget(#,pass) != $nick) notice $nick You have to draw once first. else { nextturn var %nnick = $hget(#,p $+ $hget(#,turn)) msg # %nnick $+ 's turn msg # Top card: $hget(#,top) notice %nnick Your cards: $hget(#,%nnick) hdel # pass } } on $*:text:/^[@!.]play/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. elseif ($hget(#,p $+ $hget(#,turn)) != $nick) notice $nick It is not your turn. elseif (!$iscard($2-)) notice $nick Syntax: !play <color> <card> or !play WD4/W <color> elseif (!$hascard($2-,$nick)) notice $nick You don't have that card. else { noop $regex($iscard($2-),/^\x03(\d{2})(\[.+?\])$/) var %co = $regml(1), %c = $regml(2) if (%co isin $hget(#,top)) || (%c == $strip($hget(#,top))) || (%c == [*]) { delcard $nick $2- hadd # top $iscard($2-) if (%c == [D2]) { nextturn var %snick = $hget(#,p $+ $hget(#,turn)), %nnick, %msg hadd # %snick $instok($hget(#,%snick),$cards(2),0,32) nextturn %nnick = $hget(#,p $+ $hget(#,turn)) %msg = %snick draws 2 cards and is skipped! %nnick $+ 's turn. } elseif (%c == [S]) { nextturn var %snick = $hget(#,p $+ $hget(#,turn)), %nnick, %msg nextturn %nnick = $hget(#,p $+ $hget(#,turn)) %msg = %snick is skipped, %nnick $+ 's turn. } elseif (%c == [R]) { hadd # rev $iif($hget(#,rev),$false,$true) nextturn var %nnick = $hget(#,p $+ $hget(#,turn)), %msg = $nick reversed it $+ $chr(44) %nnick $+ 's turn. } elseif (%c == [*]) && (4 isin $2-) { nextturn var %snick = $hget(#,p $+ $hget(#,turn)), %nnick, %msg hadd # %snick $instok($hget(#,%snick),$cards(4),0,32) nextturn %nnick = $hget(#,p $+ $hget(#,turn)) %msg = %snick draws 4 and is skipped! %nnick $+ 's turn. } elseif (%c == [*]) { nextturn var %nnick = $hget(#,p $+ $hget(#,turn)), %msg = %nnick $+ 's turn. } else { nextturn var %nnick = $hget(#,p $+ $hget(#,turn)), %msg = %nnick $+ 's turn. } if ($numtok($hget(#,$nick),32) == 1) msg # $nick has 3U04N12O! elseif (!$v1) { msg # Congratulations $nick you win!!! hfree # hinc uno $nick return } msg # %msg msg # Top card: $hget(#,top) notice %nnick Your cards: $hget(#,%nnick) hdel # pass } else notice $nick That card doesn't play. } } alias cards { var %c = 12[1] 12[2] 12[3] 12[4] 12[5] 12[6] 12[7] 12[8] 12[9] 09[1] 09[2] 09[3] 09[4] 09[5] 09[6] 09[7] 09[8] 09[9] $& 08[1] 08[2] 08[3] 08[4] 08[5] 08[6] 08[7] 08[8] 08[9] 04[1] 04[2] 04[3] 04[4] 04[5] 04[6] 04[7] 04[8] 04[9] 01[WD4] $& 01[WD4] 01[WD4] 01[WD4] 12[D2] 12[D2] 09[D2] 09[D2] 08[D2] 08[D2] 04[D2] 04[D2] 12[S] 12[S] 09[S] 09[S] 08[S] 08[S] $& 04[S] 04[S] 12[R] 12[R] 09[R] 09[R] 08[R] 08[R] 04[R] 04[R] 01[W] 01[W] 01[W] 01[W] var %i = $1, %o while (%i) { %o = $instok(%o,$gettok(%c,$r(1,68),32),0,32) dec %i } return %o } alias iscard { if ($regex($1,/^([bgyr])\w* (\d)$/i)) return $+($col($regml(1)),[,$regml(2),]) elseif ($regex($1,/^w(?:ild)? ?d?(?:raw)? ?4? ([bgyr])/i)) return $col($regml(1)) $+ [*] elseif ($regex($1,/^([bgyr])\w* d(?:raw)?2$/i)) return $col($regml(1)) $+ [D2] elseif ($regex($1,/^([bgyr])\w* ([sr])\w*$/i)) return $+($col($regml(1)),[,$upper($regml(2)),]) } alias col { if ($1 == b) return 12 elseif ($1 == g) return 09 elseif ($1 == y) return 08 else return 04 } alias nextturn { var %c = $iif(#,#,$1) $iif($hget(%c,rev),hinc,hdec) %c turn if (!$hget(%c,p $+ $hget(%c,turn))) hadd %c turn $iif($hget(%c,rev),1,$hget(%c,players)) } alias hascard { var %c = $iscard($1) if ($strip(%c) == [*]) { if (4 isin $1) return $istok($hget(#,$2),01[wd4],32) else return $istok($hget(#,$2),01[W],32) } else return $istok($hget(#,$2),%c,32) } alias delcard { var %c = $iscard($2-), %o if ($strip(%c) == [*]) %o = $iif(4 isin $2-,01[wd4],01[W]) else %o = %c hadd # $1 $remtok($hget(#,$1),%o,1,32) } alias remplayer { var %p = $hfind($1,$2).data, %i = $right(%p,-1) hdel $1 $2 hdel $1 %p hdec $1 players msg $1 $3- if ($hget($1,players) == 1) { msg $1 Game ended, you need atleast two people to uno. hfree $1 } else { if (!$hget($1,p $+ $hget($1,turn))) { if (!$hget($1,top)) return nextturn $1 var %nnick = $hget($1,p $+ $hget($1,turn)) msg $1 %nnick $+ 's turn. msg $1 Top card: $hget($1,top) notice %nnick Your cards: $hget($1,%nnick) } while (%i <= $hget($1,players)) { hadd $1 p $+ %i $hget($1,p $+ $calc(%i +1)) hdel $1 p $+ $calc(%i +1) inc %i } } }
-
Now Playing script for internet radio stations. It uses a SHOUTcast admin page for a given station. Just Played. Will show up to the last 9 songs played on the given station. Commands: !np or !nowplaying will show current song !np [station name] [c,count,l,listner] Shows current listner count. !np [station name] url will show the url of said site. !np [station name] status will show the current status of the stream [Online or Offline] !jp or !justplayed or !lp or !lastplayed will show previous 3 songs !jp [1-9] will show previous 1 or up to 9 previous songs. Default settings allow normal/voice to call up to 5 previous songs. Op/Owners can call up all 9 previous songs. Flood protection is added in to keep a user from calling up the history list more than once in a short period of time. !np [help] Code may look long and complicated, I just have added a lot of notes and comments for future modifications and so I remember what I did. 2012-05-08 - v2.1 Original creation Released to the public. 2012-05-24 - v3.0 Released. Merged personal Just playing script with Now Playing script to create a full feature script. See bottom of script for Version history ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Now Playing ;;;;;;;;;;;;via SHOUTcast ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;ft JustPlayed;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eqrunner;;;;;;;;;;;;v 3.0;;;;;;;;;;;;;;;;;;;;; /* !nowplaying !nowplaying [station name] [s|c|L] !nowplaying [help|?] !justplayed !justplayed [1-9] */ ;alias np { on $*:TEXT:/^[!](nowplaying|np|justplayed|jp|justheard|lastplayed|lastplay|lp|previous|previousplay|previousplayed|history|played)/Si:#:{ ;=== Set up the station Information: === set %np_station SHOUTdrive set %np_ip sanjose.oontz.shoutdrive.com set %np_port 80 set %np_url http://www.shoutdrive.com ;=== End station Information === ; === Nothing below needs to be modified, unless you wish to modify the output, in which case, go down to the sockclose alias. === set %np_nick $nick set %np_chan $chan set %np_network $network ;-- Merges multiple commands down to two commands !nowplaying and !justplayed --; ;- Nowplaying merge var %np_np_list !nowplaying !np if ($1 isin %np_np_list) set %np_command !nowplaying ;- Justplayed merge var %np_jp_list !justplayed !jp !justheard !lastplayed !lastplay !lp !previous !previousplay !previousplayed !played !history if ($1 isin %np_jp_list) set %np_command !justplayed ;--- Help Parameters if ($2 == ?) || ($2 == help) { nowplaying_help | halt } ;--- !nowplaying Parameters --- if (%np_command == !nowplaying) { set %np_sock_GET /7.html HTTP/1.0 } ;--- Variable $3 Parameters --- if ($3 != $null) { if ($3 == s) || ($3 == status) set %np_3 status if ($3 == url) set %np_3 url if ($3 == c) || ($3 == count) || ($3 == listner) || ($3 == l) set %np_3 count } ;--- !justplayed Parameters --- ;- Limits voice and normal to only seeing a max of 5. Allows OPS a max of 10 -- ;-- Helps prevent standard user flooding ;- IF no number is givin, then set to the default amount of 3 if (%np_command == !justplayed) { set %np_sock_GET /played.html HTTP/1.0 if ($2 isnum 1-9) { var %np_oplist isop ishop isowner if (%np_nick isop %np_chan) || (%np_nick isowner %np_chan) { set %np_2 $2 } if (%np_nick isvoice %np_chan) || (%np_nick isreg %np_chan) { if ($2 > 5) { set %np_2 5 } if ($2 <= 5) { set %np_2 $2 } } } if ($2 == $null) { set %np_2 3 } } ;--- Flood Protection if (%np_command == !justplayed) && (%npdelay > 0) { .notice $nick Previous songs already listed. See above. | unset %np_* | halt } ;--- Socket Preperation sockclose nowplaying sockopen nowplaying %np_ip %np_port } ;========== SOCK OPEN ========== on *:SOCKOPEN:nowplaying:{ sockwrite -n $sockname GET %np_sock_GET sockwrite -n $sockname User-Agent: Mozilla sockwrite -n $sockname $crlf } ;========== SOCK READ ========== on *:sockread:nowplaying:{ ;--- !nowplaying Sock Read ---- if (%np_command == !nowplaying) { if ($sockerr > 0) { notice %np_nick %tegn.1 $+ %radio.navn $+ %tegn.2 %tegn.midt %tegn.1 Stream Is Offline %tegn.2 NOTE1 return } :nextread sockread -f %scasttemp1 if ($sockbr == 0) return if (%scasttemp1 == $null) %scasttemp1 = empty set %scasttemp1 $remove(%scasttemp1,<HTML><meta http-equiv="Pragma" content="no-cache"></head><body>,</body></html>) if ((HTTP/1.* !iswm %scasttemp1) && (content-type* !iswm %scasttemp1) && (%scasttemp1 != empty)) { set %np_listeners1 $gettok(%scasttemp1,1,44) set %np_status1 $gettok(%scasttemp1,2,44) set %np_peak1 $gettok(%scasttemp1,3,44) set %np_max1 $gettok(%scasttemp1,4,44) set %np_ulistners1 $gettok(%scasttemp1,5,44) set %np_kbps $gettok(%scasttemp1,6,44) set %np_asong1 $gettok(%scasttemp1,7-,44) set %np_song1 $replace(%np_asong1,&,$chr(38),',$chr(39)) } goto nextread } ;--- !justplayed Sock Read ---- if (%np_command == !justplayed) { sockread -f %jp_temp if ($regex(%jp_temp,/(?i)<td>(.+)<\/td>/)) { ;echo -s $regml(1) ;--- Strips down the code /* Strips down the code down to the needed info with § seperators to be used by the $gettok. Yes, I could of combined this in to one or two lines. But I kept it seperate to help keep it understandable and easy to trouble shoot. -Removes all close tags in the code </*> -Removes all <tr> and <b> tags from the code -Replaces all <td> and <br> with § character -Counts total § characters to be referenced below in the while loop. */ var %jp_stripped $regsubex($regml(1),/</[^>]*>/g,$chr(0)) var %jp_stripped $replace(%jp_stripped,<tr>,$chr(0),<b>,$chr(0)) var %jp_stripped $replace(%jp_stripped,<td>,$chr(167),<br>,$chr(167)) set %jp_167count $count(%jp_stripped,$chr(167)) ;----Sets the first song (current song) /* Have to as the 'Current song' at the end, screws up the count for the remainder. (Song 1 time and song is at 3 and 4 (odd then even), as the rest are at 6 and 7 (even than odd) */ set %jp_time1 $gettok(%jp_stripped,3,167) set %jp_song1 $gettok(%jp_stripped,4,167) var %jp_line_var = 6 var %jp_songline_var = 2 ;---Sets the remainder of the songs, plus extra junk. /* =While the line_var is less than the total number of § characters -Sets the time variable -Increases the token count number -Sets the Song Varible -Increases the token count and song line count */ while (%jp_line_var < %jp_167count) { set $+(%,jp_time,%jp_songline_var) $gettok(%jp_stripped,%jp_line_var,167) inc %jp_line_var set $+(%,jp_song,%jp_songline_var) $gettok(%jp_stripped,%jp_line_var,167) inc %jp_line_var inc %jp_songline_var } ;set %jp_stripped3 $regsubex($regml(1),/§[^>]*§/g,$chr(167)) } } } ;========== SOCK CLOSE ========== on *:sockclose:nowplaying:{ ;=== Station Fail ==== ;-- If station is offline then: if (%np_status1 == 0) { msg %np_chan %np_station $+ : Stream Is Offline goto np_end } ;=== User had added a 3rd parameter to their message. Aka !nowplaying [station] [s,status,url,c,count,listern] ;-- If user has added an S or Status as the 3rd parameter. Then the status of station will show. if (%np_3 == status) { if (%np_status1 == 0) { var %np_status2 = Offline } elseif (%np_status1 == 1) { var %np_status2 = Online } msg %np_chan %np_station Status: %np_status2 ;msg %np_chan %np_station Status: %np_status2 $chr(124) Listeners: %np_listeners1 $chr(124) Peak: %np_peak1 $chr(124) Limit: $+ %np_max1 $chr(124) Stream: $+ %np_kbps $+ kbps } ;-- If user has URL as 3rd parameter, then url of site will show. if (%np_3 == url) { msg %np_chan %np_station $+ : %np_url } ;-- If user has C, Count, or L, then listener count will show. if (%np_3 == count) { msg %np_chan %np_station listener count: %np_listeners1 ( %np_ulistners1 unique ) } ;-- IF user has only asked for !np, or !np [station], then the current song will show. if (%np_3 == $null) { ;--- IF !nowplaying if (%np_command == !nowplaying) { msg %np_chan %np_station $+ : %np_song1 } ;--- IF !justplayed if (%np_command == !justplayed) { inc -z %npdelay $calc(%np_2 * 10) var %jp_t = 1 var %jp_list2_var = 2 while (%jp_t <= %np_2) { .timer 1 %jp_t msg %np_chan %jp_list_var : $($+(%,jp_time,%jp_list2_var),2) : $($+(%,jp_song,%jp_list2_var),2) inc %jp_t inc %jp_list2_var } } } :np_end unset %np_* unset %jp_* } ;============================ ;=== Help Section =========== ;============================ alias nowplaying_help { .timer 1 0 .msg %np_nick --- Now Playing HELP --- .timer 1 1 .msg %np_nick Use command: !nowplaying to see what is currently playing. .timer 1 3 .msg %np_nick Use commands: !justplayed or !lastplayed to see the previous 3 songs .timer 1 4 .msg %np_nick You can add a number on the end to see a specific amount of previous songs. Limit 5 for users, 10 for ops .timer 1 5 .msg %np_nick EX: !justplayed 5 = will give you previous 5 songs. .timer 1 6 .msg %np_nick --- END of Now Playing Help --- %np_tunage_cleanup } /* ==================================== v 2.1 Released to public. Fully working Nowplaying v 3.0 Rewrittin, Now includes Playlist history and HELP ==================================== Notes: Two actions read from seperate pages, but use the same common SOCKOPEN/SOCKREAD. !nowplaying GET's from /7.html !justplayed GET's from /playe
-
This is a forum request made by maria who wishes to have the latest comment checked via reddit.com. The script will then send the info to a channel with its title, short link and by whom. I thought I'd make this a snippet submission to benefit those who find it useful or usable. Usage: right-click on your channel or nick list to toggle "Reddit On" and "Reddit Off" to get started. alias -l reddit { var %i = 1, %socks = reddit reddit2 while ($gettok(%socks,%i,32)) { var %v1 = $v1 if ($sock(%v1)) sockclose $v1 sockopen %v1 www.reddit.com 80 sockmark %v1 msg $1 inc %i } } alias -l trans { return $replace($1,<,<,>,>,",", ,$chr(160),&,&,&#39;,') } on *:sockclose:reddit*:{ if ($sock($sockname).name == reddit) { if ($hget(data2)) && ($hget(data3)) && ($hget(data4)) { $sock($sockname).mark $+($chr(2),Latest Comment:,$chr(2)) $& [ [ $remove($+($hget(data2,1).item,$chr(32),$hget(data2,1).data),r/) ] ] $sock($sockname).mark $+($chr(2),Latest Post:,$chr(2)) $& $+($hget(data3,1).item,$chr(32),$hget(data3,1).data) - $& $hget(data4,1).item by $hget(data5,1).item hfree -w data* } } else { if ($sock(reddit2)) sockclose $v1 sockopen reddit2 www.reddit.com 80 sockmark reddit2 msg $1 } } menu channel,nicklist { Reddit .ON { if (!%reddits) { set -e %reddits $$?"Which Reddit to Watch?" set -e %reddittime $$?"How often do you want the latest post checked $& and sent to the channel in seconds?" $+(.timer,#,$network) 0 %reddittime reddit # echo 2 # * Reddit Set for: $+($chr(2),%reddits) echo 2 # * Time Interval in Seconds: $+($chr(2),%reddittime) if (%true) unset $v1 } else echo 4 # * Reddit is Already Switched On! } .OFF { if (%reddits) { $+(.timer,#,$network) off echo 2 * Reddit Has Been Turned Off! unset %reddit* %true } else echo 4 # * Reddit is Already Switched Off! } } on *:sockopen:reddit*:{ if ($sockerr) { echo 4 $gettok($sock(reddit).mark,2,32) Error Connecting to $sock(reddit).addr sockclose reddit } if ($sock($sockname).name == reddit) { var %reddit = sockwrite -nt reddit %reddit GET $+(/r/,%reddits,/comments?limit=1) HTTP/1.0 %reddit Connection: close %reddit Host: $+($sock(reddit).addr,$str($crlf,2)) } else { var %reddit2 = sockwrite -nt reddit2 %reddit2 GET $+(/r/,%reddits,/new.json?sort=new) HTTP/1.0 %reddit2 Connection: close %reddit2 Host: $+($sock(reddit).addr,$str($crlf,2)) } } on *:sockread:reddit*:{ if ($sockerr) { echo 4 $gettok($sock(reddit).mark,2,32) Error Reading $sock(reddit).addr sockclose reddit } if ($sock($sockname).name == reddit) { sockread &reddit var %g = $regsubex($bvar(&reddit,1-).text,/\/r\/|&#\d+;/g,) if ($regex(%g,/<\/div><\/form><ul class="flat-list buttons">(.*)/)) { hadd -m data $+($sock(reddit).addr,/tb/,$gettok($iif($regex($regml(1),$& /\/comments\/(\S+)\//),$trans($regml(1))),1,47)) } if ($regex(%g,/class="title" rel="nofollow" >(.*)class="author/)) { hadd -m data2 $gettok($trans($regml(1)),1,60) - $& $!+($chr(3),12,$hget(data,1).item,$chr(3)) by $+($chr(3),05,$& $iif($regex($regml(1),/\/user\/(\S+)"/),$regml(1))) } } else { sockread &reddit2 var %g2 = $bvar(&reddit2,1-).text if ($regex(%g2,/"title"\: "(.*)"/)) { hadd -m data3 $gettok($trans($regml(1)),1,34) } if ($regex(%g2,/"id"\: "(.*)"/)) { hadd -m data4 $+($chr(3),12,$gettok($+(http://redd.it/,$& $trans($regml(1))),1,34),$chr(3)) sockclose $sockname } if ($regex(%g2,/"author"\: "(.*)"/)) { hadd -m data5 $+($chr(3),05,$gettok($regml(1),1,34)) } } } on me:*:join:#:{ if (%true) notice $me Reddit has been toggled off. Right-click on $& the nicklist or channel to toggle it on. | unset %true } on *:disconnect: if (%reddits) $+(.timer,#,$network) off | set -e %true 1 on me:*:part:#: if (%reddits) $+(.timer,#,$network) off | set -e %true 1 on *:kick:#:{ if ($knick == $me) && (%reddits) $+(.timer,#,$network) off set -e %true 1 } on *:quit:{ if ($nick == $me) && (%reddits) { var %c = 1 while ($comchan($me,%c)) { $+(.timer,$v1,$network) off set -e %true 1 inc %c } } }
-
This work below is yet another forum request that I've decided to submit as a part of my snippet collection. For those who find this snippet useful, It's for the bot client, and the trigger is either !facts, @facts, .facts or !jokes, @jokes, .jokes. on $*:text:/^[!@.](fact|joke)s$/iS:#:{ if (!%f) { inc -u3 %f var %s = $+(rjf,$str($ticks,2),$site) if ($sock(%s)) sockclose $v1 sockopen %s www.randomfunfacts.com 80 sockmark %s .msg # $regml(1) } } on *:sockclose:rjf*:{ tokenize 32 $sock($sockname).mark var %s = $+(rjf,$str($ticks,2),$site) if ($sock(%s)) sockclose $v1 sockopen %s www.jokesclean.com 80 sockmark %s $1-2 } on *:sockopen:rjf*:{ tokenize 32 $sock($sockname).mark if ($sockerr) { $1-2 Error: Connection Issue... sockclose $sockname } else { if ($3 == fact) { var %rjf = sockwrite -nt $sockname %rjf GET / HTTP/1.1 %rjf Connection: close %rjf Host: $+($sock($sockname).addr,$str($crlf,2)) } else { var %rjf = sockwrite -nt $sockname %rjf GET /OneLiner/Random/ HTTP/1.0 %rjf Host: $+($sock($sockname).addr,$str($crlf,2)) } } } on *:sockread:rjf*:{ tokenize 32 $sock($sockname).mark if ($sockerr) { $1-2 Error: Issues in Reading... sockclose $sockname halt } goto $iif($3 == fact,fact,joke) :fact sockread &rjf var %info = $regsubex($bvar(&rjf,1-).text,/<[^>]*>|\t$& $+ RLOpenInNewWindow|"1";|var RLRepeatKeywords/g,$chr(32)) if ($gettok($replace(%info, ,$chr(94)),2,94)) { $1-2 $remove($gettok($v1,11-,32),24c6) sockclose $sockname | halt :joke var %jokes sockread %jokes if ($regex(%jokes,/(.*)<\/font><\/p>/)) { $sock($sockname).mark $replace($gettok($regml(1),3-,62), ,$chr(32)) sockclose $sockname } halt } }
-
This script will send a boring, random message to the active channel when the irc server pings you. (You must have your client looking at the active channel window) It's useful when your nickname idles in a quiet channel, where activity is scarce and that you're away from keyboard every so often. Below are some random ones emitted when you get pinged by the server: I'm in Illinois hello hello! Is there evrybody some there see ya Hola desde España Holy Sh*t!! I feel like such a spy...if your really live...grab your head.. Are you workin' hard or hardly workin'? CATS MEOW MEOW MEOW**Usage:** right-click on your nick list or channel to toggle the script on and off. on me:*:part:#:{ if (%random) { $+(.timer,$network) off set -e %randommsg 1 } } on *:quit:{ if ($nick == $me) && (%random) { $+(.timer,$network) off set -e %randommsg 1 } } on *:disconnect:{ if (%random) $+(.timer,$network) off set -e %randommsg 1 } on me:*:join:#:{ if (%randommsg) { notice $me Random Message has been toggled off. $& Right-click on the nicklist or channel to toggle it on. unset %random* } } on *:kick:#:{ if ($knick == $me) && (%random) $+(.timer,$network) off set -e %randommsg 1 } on *:sockread:rm:{ var %rm sockread %rm if ($regex(%rm,/<h1>(.*)<\/h1>/)) { [ [ $sock(rm).mark ] ] sockclose rm } } alias -l randommsg { if ($sock(rm)) sockclose $v1 sockopen rm www.randommessages.com 80 sockmark rm amsg $!regml(1) } on *:sockopen:rm:{ tokenize 94 $left($str(sockwrite -nt rm^,2),-1) var %- 1, %` GET / HTTP/1.1^Host: $!+($sock(rm).addr,$str($crlf,2)) while $gettok(%`,%-,94) { [ [ $+($,%-,$chr(32),$v1) ] ] inc %- } } menu channel,nicklist { Random Message .ON { if (!%random) { set -e %random $$?"Input the trigger time in seconds:" $+(.timer,$network) 0 %random randommsg echo 2 # * Time Interval in Seconds: $+($chr(2),%random) if (%randommsg) unset $v1 } else echo 4 # * Random Message is Already Switched On! } .OFF { if (%random) { $+(.timer,$network) off echo 2 * Random Message Has Been Turned Off! unset %random* } else echo 4 # * Random Message is Already Switched Off! } }
-
on $*:text:/^!define o(n|ff)$/iS:#:{ if ($nick isop #) { if ($regml(1) == n) { if (!$istok(%chan,#,44)) { set %chan $addtok(%chan,#,44) .notice $nick # has been added! } else .notice $nick the channel $qt(#) has already been added! } else { if ($istok(%chan,#,44)) { set %chan $remtok(%chan,#,1,44) .notice $nick # has been removed. } else .notice $nick the channel $qt(#) has already been removed. } } else .notice $nick Access Denied. This command is reserved for OP only. } on *:sockopen:ud*:{ tokenize 32 $sock($sockname).mark if ($sockerr) { $5-6 Socket Error! halt } $2-4 GET $+(/v0/define?term=,$1) HTTP/1.0 $2-4 Host: $+($sock($sockname).addr,$str($crlf,2)) $2-4 Connection: close } on $*:text:/^[!@.]define( |$)/iS:%chan,?:{ if (!$($+(%,-,$site,.,$cid,.,$nick),2)) { inc -u3 $+(%,-,$site,.,$cid,.,$nick) var %ud = $+(ud,$str($ticks,3)) $+(sock,$iif($sock(%ud),close,open) %ud api.urbandictionary.com 80) sockmark %ud $replace($strip($2-),$chr(32),+) $& sockwrite -nt %ud .msg $iif(#,#,$nick) } } on *:sockread:ud*:{ sockread &ud tokenize 32 $sock($sockname).mark if ($sockerr) { $5-6 Socket Error! } elseif (no_results isin $bvar(&ud,1-).text) { $5-6 $qt($1) is undefined! } elseif ($regex($bvar(&ud,1-).text,/"definition":"(.*)/)) { tokenize 34 $regml(1) $gettok($sock($sockname).mark,5-6,32) $regsubex($1,/\Q\r\n\E/g,$chr(32)) } }