exec now has a basic nick tracking script that hooks the join, nick, quit, kick, part and 353 events. this feature is similar but nowhere near as complete as xchat's (or $insert_client_here's) user list.
it has lead to the addition of internal stdout commands for retrieving a space-delimited listing of bucket indexes, and commands for pausing and unpausing the processing of irc data, to prevent corruption of bucket data that might occur due to multiple processes triggered by irc events trying to read/write to the same bucket(s) simultaneously.
nick tracking enables scripts to find out what nicks are in a given channel or what channels a given nick are in. currently only channels shared with the bot are tracked, but with additional event hooks (such as a whois 319 numeric) additional channel info can be tracked.
with proposed addition of whois account querying (330 numeric) by the user tracking script, other scripts will be able to authenticate instructions with a simple function call.
the irciv script was originally designed with player authentication using the 330 nickserv account numeric. however it was messy, with irciv-specific code sprinkled throughout the main event handling script (cmd.php). the generalized tracking system will give all scripts access to the same user data via a small set of lib functions.
--
http://sylnt.us/exec
https://github.com/crutchy-/exec-irc-bot
<OfficialDevHat>
So, I'd given an estimate of "by this weekend" for crypto-currency payment processing. I was pretty close for not even having looked at it or picked a payment processor yet. It's looking like I'll finish Monday unless I find another 3-4 hours of coding in my brain today. I can't really speak to when it will deployed to prod afterwards.
The skinny of it is I went through two other payment processors before settling on Bitpay. It would have been nice to accept litecoin and dodgecoin as well as bitcoin but some payment processor who shall remain nameless had a dev environment that did not mirror their prod environment and all the documentation for the API was for their dev environment, so I killed with fire all nine or ten hours of coding I'd done to process payments with them and went back to looking for another processor. Maybe one of these days they'll update and bring some sanity to their system and you lot will be able to use litecoin and dodgecoin here. Until then, bitcoin payments via Bitpay are currently working from my dev environment but in need of some finishing touches and testing before being deployed for you lot to use.
</OfficialDevHat>
<PrivateCitizenHat>
A quick word about Bitpay. If you ever want to receive USD when being sent BTC, I personally highly recommend using them. Aside from test.bitpay.com not being mentioned in the docs at the time, they were bloody brilliant to code against. As a random code monkey on the Internet, they have my resounding personal endorsement.
</PrivateCitizenHat>
For a few months now, aqu4bot's Windows support has been broken. Compilation would fail because nonblocking sockets were not properly doable in Windows the way it was intended. I was using the same network core I use on the IRC protocol to download HTTP.
It worked, except when it hung. This affected mainly the $title command. So I added the nonblocking, which was necessary, but this broke all Windows support. I was reluctant in using libcurl because although I love libcurl, I only had two commands for aqu4 that used HTTP. That was $ddg and $title.
The good news is libcurl is VERY portable and works well under Windows. So needless to say aqu4bot's Net_GetHTTP() function was removed in favor of a new CurlCore_GetHTTP().
There is now a hard dependency on libcurl, but that's fine I suppose, since I now have my precious and arguably useless Windows support once more.
To celebrate, I created a new icon for aqu4bot that is used as the icon for the Windows executable: http://universe2.us/collector/aqu4bot.png
There's still a small issue with $time, as Windows does not have zoneinfo so I can't set the timezone properly, but everything else appears to work!
if you're chatting away on soylent irc (irc.sylnt.us) check out #comments for a SoylentNews comment feed
the feed is based on the last 50 articles in the atom feed, and is updated every half hour
also highlights score 5 comments
examples:
<exec> *** new comment: Anonymous Coward (Score:0) "Microsoft Defies US Court Order, Will Not Give-up Emails" - http://soylentnews.org/comments.pl?sid=3678&cid=88065 (parent: http://soylentnews.org/comments.pl?sid=3678&cid=87969)
<exec> *** score 5 comment: Anonymous Coward for article "Microsoft Defies US Court Order, Will Not Give-up Emails" - http://soylentnews.org/comments.pl?sid=3678&cid=87971
proposed features include opt-in personalized feeds (to pm) with score threshold and other settings
suggestions/criticism/feedback/etc is always welcome
--
https://github.com/crutchy-/exec-irc-bot/blob/master/scripts/comment_feed.php
So, mod-bombing is becoming a problem. Where mod-bombing is defined as blowing a bunch of moderator points on one person's comments in pursuit of a personal vendetta. I think we're pretty much all in agreement that this type of behavior is NOT what the moderation system was designed to do and can't be allowed to continue.
So, I, personally, not anyone else on staff or the site as a whole, would like some input to use to further refine or outright change my opinion on how to deal with the matter. Bear in mind that I am not the person who gets to decide this, just the guy who would likely be coding it up.
At the moment my favorite idea is that after N downmods from person A to comments made by person B, person A be presented with a page offering them the choice of removing all their moderations from this set of modpoints or to continue on with the knowledge that an admin WILL be checking their moderations for today with the possible consequences of reversal of their moderations and their ineligibility to receive mod points again for a number of days ranging from 1 through infinity.
What say you, SN?
~help <alias>
gets first 3 lines from section of this wiki page: http://wiki.soylentnews.org/wiki/IRC:exec_aliases
followed by a url
~staff meeting
outputs paragraph in site news slashbox containing the word "meeting", with paras delimited by <br>
scripts can call lib.php function bot_ignore_next() to set a flag in the bot that tells it to ignore the next message, which is useful if outputting aliases that you don't want to be processed (such as for ~help)
~count <nick>
counts number of privmsgs in channel. also indicates over how many days and average of privmsgs per day.
some recent goings on with the exec bot that generally lurks in #Soylent channel on irc.sylnt.us:
- sed supports regex through use of preg_replace (FoobarBazbot's awk script no longer running under exec)
- reserved alias for logging script
- disabled ping script for auto-restart cos it was a disaster (i think i fixed the problem by disabling the ping until connection is established but not going to bother testing for now)
- implemented support for bucket_append messages, which allows creating lists from multiple concurrent processes without fouling each other (needed for users.php which builds lists of channels, nicks and nickserv accounts using list, who and whois irc commands)
- refined the weather script a little as a result of some feedback (thanks to those involved)
- put weather and time functions into lib files to make them accessible from a new welcome script that can (if enabled) show weather and local time on joining a channel (if your nick/location is registered using ~weather-add or ~time-add)
- created switches.php in an attempt to make enabling/disabling features on a per channel basis a little more uniform (used by sed and welcome scripts)
- script created to add suggestions to the wiki, using ~suggest (appends to a section of an article, with bullet formatting)
- added stats aliases ~first, ~last, ~find-first, ~find-last and ~count that make use of cached chat logs
- added interface for adding/editing/deleting ~define sources
- added ~killall admin command to terminate all scripts/programs running under the bot process
- admin setting to ignore/unignore nicks added
- added script start timestamp template for the exec.txt file
hoping to eventually get the nickserv account checking stuff in users.php to a point where i can use it to fix up the player authentication in irciv cos i really wanna get back into that
haf fun :D
===
https://github.com/crutchy-/test
http://wiki.soylentnews.org/wiki/IRC:exec
cf: http://dev.soylentnews.org/comments.pl?sid=1115&cid=27307
See: http://www.w3.org/2004/04/uri-rel-test.html
All of the following were entered using <a href="...">>...</a>
Test 101: http://www.w%33.org/
Should be: http://www.w3.org/
Test 111: http://r%c3%a4ksm%c3%b6rg%c3%a5s.josefsson.org/
Should be: http://räksmörgås.josefsson.org/
Test 112: http://%e7%b4%8d%e8%b1%86.w3.mag.keio.ac.jp/
Should be: http://�豆.w3.mag.keio.ac.jp/
Lameness filter encountered.
Your comment violated the "postercomment" compression filter. Try less whitespace and/or less repetition.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porta tempus nunc, vel gravida eros. Fusce ac sapien sed elit adipiscing pharetra at vel neque. Cras consequat a nisi vitae interdum. Nulla pulvinar, nisi a varius venenatis, lorem mauris posuere nulla, sit amet venenatis enim mauris quis tellus. Fusce nec ullamcorper lorem. Proin vulputate leo sapien, sollicitudin tincidunt urna eleifend vel. Etiam eleifend nulla id leo egestas interdum. Sed dignissim mauris eget tincidunt fermentum. Sed nec felis et nisl ullamcorper gravida varius in augue. Morbi ac erat quis dolor ultricies pulvinar. Vivamus sagittis viverra leo et sollicitudin. Maecenas at vulputate tortor. Donec ipsum erat, bibendum vel viverra eu, ornare vel sem.
Here is look at the upcoming changes in August update for Slashcode. We anticipate that this will be deploy within the next week or so, as we are finalizing updates to the subscripion plugin.
The majority of the work done in the past two months has been on Unicode support. The Mighty Buzzard was the point man on this endeavor, and almost single handedly bent slash to his will. The amount of code changes need to make this work was large. All of the slash Perl modules needed to be touched to add utf8 support. Our memcache processor had to be upgraded so that it would not mangle utf8. Form inputs had to be sanitized as Perl sometimes can't determine that what it reads in is a utf8 string without being told so specifically.
During our testing of utf8 we discovered many processes in slash that were deliberately breaking utf8. These all had to be tracked down and squashed. Our MySQL database in not set to handle 4 byte Unicode and would take a major change to make it comparable, so we are using html entities to handle these characters as needed. We also determined that the filter on submissions and comments were not coded with utf8 in mind. As many of these would be impossible to make utf8 friendly, we removed them. This will make most of you very happy as you will see very few filter errors from now on.
We are currently doing some ongoing testing on utf8 to make sure it works properly. Many thanks to Bytram who is heading up the QA on this. We are hoping that when we release this we do not break anything permanently.
Late in July we were given a mandate to get subscriptions working. As NCommander was taking a much needed vacation the bulk of the work fell on me. NCommander had indicated the changes we wanted to make would be relatively easy. The old slash subscription code was designed to give users that subscribe ad free pages as well as early access to stories. The majority of our community did not want subscribers to have early access to post, because it was thought that some users would abuse this functionality. Also since we do not have ads, we wanted to change the subscription length from number of pages to number of days. These two changes should have been easy to do.
The problem was that the slash subscription module was missing functionality like many of the systems that we have fixed. The PayPal payment system was missing the back end payment processing code, so although a user could pay for a subscription there was nothing to tie the completed transaction back to the website to give the user their subscription. Being PayPal this code was not straight forward to implement, and as of this writing we only have the real-time component working. The back end processor, which would catch payments that complete but fail to reach our systems due issues on redirect, is being hammered out right now by The Mighty Buzzard. It is its own little web engine in Perl that listens for PayPal transactions, verifies, then processes them.
Other subscriber bonuses were also added to the code. One of the biggest is that subscribers will not be throttled by slash's formkeys. They will no longer get the "Slow down cowboy" messages. Another bonus was already in the code and just needed to be turned on. This bonus allows the user to see their entire comment history on their info page. This was a Easter egg to me as I was unaware that it was available until I read the code. The final community requested feature was the ability to turn off the subscriber indication. This was a * that was beside a user name next to a comment. It is now a star and goes well with our new Zoo icons (see below). But the indicator status was stored with the comment at the time it was made. I had to rewrite the code so that the check would happen at display time and it would check the author of the comment to see if they are a subscriber and they do not have the hide_subscription status checked.
As work was being done on the swag store with a bunch of versions of the SoylentNews logo, we noticed that the main site logo on the Wiki was a nicer version than the one on the main site. We used the newly obtained logo source files to update all of the site logos with cleaner ones based on the Wiki logo. This also lead us to pump out two quick site themes. Bada55 and Black IcIcle are based on the two colors used in the logo on each #bada55, and #1c1c1c.
We also had some new topic icons made by user rand. We used some of our original icons, some of rand's, and some that I made, to get our new set of topic icons that are all transparent png files so they will work on the dark themes. This made our Zoo icons (Friend and Foe) look bad, so a quick trip to the internet, to find a free set of similies that would look good at 15px x 15px, fixed that issue.
So as The Mighty Buzzard would say, thank The Mighty Buzzard it you like the changes and blame paulej72 it you hate them :).