Loqi

From IndieWeb

Loqi is a friendly and useful bot/digital therapist present in the IndieWeb discussion channels.

Commands and Queries

Loqi will respond to certain commands and queries entered in the chat.

Questions can optionally include a question mark at the end.

Wiki

what is xyz, what are xyzs, what is an xyz, what was xyz
Looks up "xyz" on the wiki and responds with the first sentence of the page that includes a dfn element.
what is xyz,
xyz is A Long and Boring Definition
Adds dfn element
xyz is _____
After a "what is xyz" prompt, saying "xyz is ___" will create a new stub wiki page with the definition.
To create a redirect, after asking for a page, say "xyz is /abd". Loqi creates "abc" as a redirect.
xyz is http(s)://____, _____
If the definition starts with an URL, followed by a comma, Kaja will afterwards edit the page to link the <dfn> to the URL
when is X
Looks up "X" on the wiki, and if it's an event, responds with the date and location of the event
http://indiewebcamp.com/irc/2015-02-02#t1422900152023
who is xyz
Looks up "xyz" on the chat-names page and responds with the p-summary, or the first sentence of the page that includes a dfn element.
X << [[foo]] (or X << http://example.com)
Add the specified text to the "See Also" section of page X. If no "See Also" section exists, it will be created.
what time is it for username
Looks up "username" on chat-names and return the current time and date in their timezone, if specified.
FAQ
What is relevant to the IndieWeb wiki? —a useful question to ask when considering documenting something to the wiki


Interactions

!tell username message
Delivers message to username the next time they speak in the channel.
!tell userA,userB message
same as above, but for multiple users
username++
Adds 1 point of karma to the username and responds with the total karma points for that username.
While typically used on chat usernames, karma can be added to any text value, e.g. "coffee++"
username--
Subtracts 1 point of karma from the username and responds with the total karma points for that username.
This is typically used on non-username text values, e.g. "silos--". Be nice to each other. :)
!karma xyz
Responds with the current karma points for xyz.
Retweet a URL by @indiewebcamp (only available to users on chat-names [1])
<jeremycherfas> !rt http://twtr.io/1YwDs81hEtt
<Loqi> Thanks! We need one more person to confirm the retweet!
<sebsel> !rt http://twtr.io/1YwDs81hEtt
<Loqi> Thanks sebsel and jeremycherfas! https://twitter.com/indiewebcamp/status/936595100691345408
!calc <query>
runs query against Wolfram Alpha. This will do math, timezone stuff, weather lookup, ...

Meme image generation

Loqi will generate meme images when it finds certain pieces of text in a line:

!meme some text
Y U NO
<petermolnar> cweiske Y U NO use Loqi properly?
all the
<cweiske> disable all the things
what if
<cweiske> what if that worked?
not sure if $a or $b
this is .*!
<tantek> this is why I use fb.com/events as my way to check "happening tonight" !
one does not simply ...

More are listed in the Meme API on Github

Countdown

24 hours until kylewm's t-shirt
<Loqi> I added a countdown scheduled for 6/1 11:41pm (#5839)
...
<Loqi> kylewm's t-shirt
<Loqi> Countdown set by cweiske on 5/31/16 at 11:42pm
!cancel 5839
Removes a scheduled countdown


Other

!standards
Responds with the link http://xkcd.com/927/
extracts and posts h-entry
Like Twitter links, Loqi will fetch the contents of any URL posted and look for an h-entry, posting a summary of the h-entry in IRC
Displays the full content of github issue comment URLs
!date 1301943765
Convert between unix timestamps and readable dates. Try giving him other date formats too.
Random answer selection
<cweiske> Loqi, a or b?
<Loqi> I think a
<cweiske> Loqi, a, b or c?
<Loqi> b
Encouragement
Woohoo
<cweiske> Woohoo. Foo bar baz
<Loqi> yay!
<Loqi> 😊
Simulated fun
<cweiske> haha something completely different
<Loqi> hahaha
Giving, returning and eating
<KartikPrabhu> gives Loqi a cake
<Loqi> gives back the cake
<KartikPrabhu> gives Loqi a cake
<Loqi> peers at the cake
<cweiske> gives Loqi a Loqi
<Loqi> eats the Loqi
!block username
<aaronpk> !block dahstar
<Loqi> Okay, I blocked "dahstar" from all IndieWeb Twitter searches
Jargon nudges
Multiple mentions in the main IndieWeb chat channel of specific words in the Category:jargon list will cause Loqi to nudge people to other channels. See also: https://loqi.me/jargon/

Anti-Spam

We've seen a wave of IRC spam over the last few months, so Loqi now has some anti-spam techniques.

  • if you say more uppercase than lowercase characters other than the URL, and if you joined in the last 5 minutes, then you get kicked
  • if you say the same URL 5 times within a minute, you get kicked

If you're registered on chat-names then these rules do not run. Additionally, if you're registered on chat-names, then you can use the !kick command:

  • You can say !kick foobar to kick that person from the room, but only if they joined less than 5 minutes ago

Ideas

Please add brainstorms and feature requests to Loqi's issue tracker on GitHub.

IndieWeb x Loqi Dominate the Day

Hey Loqi, read the indieweb summit schedule
There are 25 items starting at 9:00, 10:00, …
Hey Loqi, show me my itches list
I found 5 reminders
Hey Loqi, get me a ride to HWC
(rideshare service) can get you a ride in 60 seconds, you can take transit from (nearest station)
Hey Loqi, what's the temperature in downtown today?
The high temperature for today in the Financial District of San Francisco will be 69 degrees and the low will be 56 degrees.
Hey Loqi, read me my last tell
08:40 Peter Molnar left you a message, re "zip in zip" 42.zip link

More to link-up and come up with equivalent responses that make sense:

  • Hey Loqi, show me photos of my UI sketches
  • Hey Loqi, tell aaronpk I want to code Loqi features
  • Hey Loqi, how does a PHP array compare to a JS array?
  • Hey Loqi, play this week in indieweb podcast
  • Hey Loqi, create a new itches section, for next HWC
  • Hey Loqi, play https://youtu.be/ufBLI6bB9sg for aaronpk

Bugs

Please file bugs with Loqi on GitHub.

See Also

  • IRC
  • Bots on IRC
  • http://loqi.me
  • Loqi the Friendly IRC Bot
  • TODO new spam detection technique for Loqi... if someone joins the room and changes the topic within a minute, kick them
  • new Loqi trigger: if someone mentions a user who hasn't spoken in a while, and then they say something, say "a wild ___ appears"
  • TikTokBot
  • feature request: when someone in /irc-people says something who hasn't for say a week or more (at most a month), say something like "Welcome back someone!", or "A wild someone appears!", or some other explicit greeting welcoming their return
  • new meme template: "if you could ... that would be ..."
  • feature request: It would be cool if Loqi could watch items on events and announce it when or shortly before it starts in the IndieWeb channel
  • Add the ability to provide the duration until no changes will be captured in the next newsletter when someone asks something like "When or how long until" "newsletter"
  • Feature Request. Enhance the "<<" command to re-use the most recent (say within 10 min window) See Also destination from the same person in that channel, for more easily adding a bunch of See Alsos to the same page. (Require same person because two people could unintentionally interleave uses of <<, same channel because different channel is different context, "recent" because beyond that, the effects may feel unpredictable because you forgot what you most recently See Also'd in that channel)
  • bug: fails to pick up dfn from Kaja in response to "What is Kaja"
  • Feature request: Tells from Loqi after a few hours tend to lose some context so it would be nice if they included a permalink to the original tell to situate the reader back into the original conversation. (example: https://chat.indieweb.org/dev/2019-11-13#t1573642447087000)
  • the bot of mischief
  • karma
  • Documentation in chat: A case study from the IndieWeb by capjamesg which is also a good introduction for using Loqi to document content into the IndieWeb wiki via chat.
  • TODO: Define pronouns.