← Back to projects

Joker

Year
2001–…
Field
Open source · Bot

Our own, first and so far only bot named Joker, made for pleasant chat company. He can entertain, report the weather, play games and sympathize. Today it is a full-fledged Telegram bot written in PHP, with an interesting history that starts back in 2001. Originally written in mIRCScript, it survived hard times and returned, ported to PHP and ready to be extended with your ideas.

Who or what is Joker

In 2001 a bot appeared on the #blackcrystal channel of the QuakeNet network. A bot like any other, nothing remarkable. All he could do was tell jokes at the request of the channel’s humorists. Hence the name — the “joker”.

Joker in mIRCScript (2001–2005)

The bot was a plain mIRC client with a program written in the client’s scripting language. I was just starting to learn it and experimented a lot.

Over time we wanted to add jokes to the bot — better yet, let the admin add them himself. In his spare time Sergei Miami kept writing Joker new features one by one.

Joker learned to keep channel attendance statistics, translate phrases, play several amusing games, run live reports of Quake2 and Quake3 matches, op admins and ban rude offenders, hold polls, fetch the temperature in any city — or of any user, via an external usb-butt thermometer — pass short messages to offline users and feedback to admins. With mIRC 6 came relays between several IRC networks, and much more.

Years later, looking back at that Joker warms the soul — the mIRCScript bot was awfully good; some things amaze me even now. But mIRC is not eternal, neither is scripting on it. New capabilities and more performance were needed, and the last straw — the BlackCrystal server migrated from Windows to Linux. That was the end of Joker’s mIRC story, and the beginning of another.

Joker in Visual Basic (2003–2004)

This build kept trying to see the light of day, written in parallel with the mIRCScript version. Every now and then the old VB code was opened, polished a little and shelved again. No VB release of Joker ever happened, though I do remember conquering the Seen feature.

Joker for IRC in PHP (started 2010)

Having forgotten about the bot and IRC for a while, I dropped out of the process. But it’s a pleasure to return to a good cause with new knowledge and a fresh, so to say, approach. I started porting the old functionality to the new ways — not for the result, but for the experiment. To make it more interesting, I set myself a list of goals:

  • the bot must have an extensible feature set (plugins)
  • plugging in new plugins and reloading them without stopping the bot
  • passing information between plugins
  • examples of the most wanted features (seen, temp, joke), documentation for developers
  • an improved parser of RAW commands of the IRC protocol
  • running several bots from one program, connected, say, to different networks
  • passing information between bots

And the work began. It proceeds with long pauses between parts, on account of laziness. But the pleasure is enormous, so sooner or later every part of the task will be done.

The fresh PHP version of Joker can be downloaded from GitHub. I’ll be glad to merge your efforts — if something interesting comes out, clone the project and enjoy!

The project was covered on freshmeat.net, phpclasses.org and phpkode.com.

Joker in Telegram (started 2019)

And again, almost a decade later, there was a reason to rewrite the bot. The IRC network was lost among other rarities, and so, it seemed, was the contact with everyone who lived there. Yet miraculously we managed to gather many of the channel’s old-timers almost 20 years later. And to add the permanent moderator who had moved to Telegram — the “joker”.

The goals are still the same, and the plans move a bit faster thanks to the folks of our Telegram channel. In 2020 the Joker repository already had two contributors and 13 plugins, and the bot ran for months without restarts!

By early 2021 we had 16 plugins. No major architecture changes, but a pile of new ideas: async code, PHP 8 and other experiments. We take and fulfil orders for new plugins; the bot manages channels of up to 40 members.

For the clan’s birthday in May 2021 the first public release came out — version 1.5.0. A fairly big update in every direction: better handling of Telegram messages, nearly all plugins improved — 22 of them by then — and a lot of new functionality. The project finally got databases collecting visitor activity, plugin data and other useful information.

September 2021. Fresh releases come out roughly once a month, mostly adding plugins — 32 already. We have almost run out of ideas, and our thoughts fly towards giving the little bot a consciousness — artificial intelligence, as they say.

To be, most likely, continued :)

The Joker Telegram bot project on GitHub

Why so serious?

Have a project in mind?

Tell us what you want to build — we'll help draft a clear plan, give an honest estimate and deliver it with quality.

Get in touch