Kismet firewall 2 in Hotot

Today, as I promised, I would like to share my experience on Hotot’s brand-new Kismet.

Briefly, it’s click & go for daily use and intelligent for advanced purposes.

Simply click on the little bunny on the top left corner, select “Kismet Firewall”, you could see what a nomal end-user firewall usually does, like this:

Mute Page

And we even provide this funny feature: “Filter like This”. If you’re not furious enough to intentionally open the Mute Page, or just too lazy to, this feature may help a lot. Just right click on a tweet, select “filter like this”:

Filter Like This

By selecting an action you wanna do to a specific part of the tweet, you create a filter rule automatically. All you need to do is verify and confirm the rule.

Verify and Confirm Filter Rule

Now comes to the most amazing but complicated part of Kismet: the Rule Based Filter:

Rule Based Filter

We divide our syntax to two pieces: Match Rule and Action begins with “do:”.

At first have some short-time memories of these full references.

namematch author. eg: “name:aiww”
mentionmatch receiver. eg: “mention:aiww”
keywordmatch a “keyword” in tweet’s text body. eg: “Bro” will eliminate that thing, YOU KNOW, laa-laa~
viamatch source. eg: “via:foursquare” will annihilate the annoying checkin guy.
tagmatch hashtag. eg: “tag:happyfriday” will clear your timeline up from #happyfriday.
has:geo/urlmatch location or link. eg: “has:geo” will remove any tweet contains geography information. we don’t even know where Mexico is, so why endure tweets keep questioning our IQ with a small town in Guadalcanal? “has:url” will keep you away from most robots, oversharing guys, and newspaper stuff.

Supported actions, at present:

do:dropit’ll annihilate the matched
do:maskit’ll overlay that text with mosaics. eg: *
do:notifyit’ll remind you through notification system (chrome or native).
do:archiveit’ll open and place that tweet in a new column.
do:reply()it’ll automatically reply the author with texts in brackets.
do:quote()it’ll automatically retweet that tweet with comments in brackets.

Next, we’ll explain how to combine them to create magic filters.

-Rule Name-

Keep me away from Bad News on Woodstock


drug OR sex OR gun OR rock'n'roll OR police tag:/woodstock/i has:url do:mask /* do:drop */

(Unluckily the OR function does not support yet. But it’s under development and nearly release state.)


Tweets contains “drug”/“sex”/“gun”/“rock’n’rool”/“police” with hashtag “woodstock” (use Regex to ignore Caps) , and represent himself as twibots by including a link (most of the times Human tells story instead of posting links) will be masked or droped.

You can equip yourself with the power of Regex in any of the Five match areas: name, mention, keyword, via, tag.

The rule in my snapshot : /^RT /g do:drop
is an example of using Regex in “keyword” area. it will search through the whole tweet text body by using suffix”/g”, if found with “RT” as empty head, it will be droped. because this should be done in Official New Retweet.

The First rule: tag:/woodstock/i do:mask
is another example of using Regex in “tag” area. it will ignore Cap error by using suffix”/i”. because you don’t know in what way tweeters write that.

Hotot’s not only prevent you from things uncomfortable, but also enables you to do things comfort you:

-Rule Name-

Notify me where my Nightclub Queen is


name:tixiang via:foursquare club do:notify do:archive do:reply("Wait for me my lord! Huge Hug you!")


Tweets contains “club” and sent by “@tixiang” from source “foursquare” will be notified to you even Chrome is minimized and aggregated into a new column. if you add the do:reply, you can even interact with her.

See how’s Hotot’s Kismet like? if you contribute further to our code base, it may even do tasks like take a habit-collection note to Evernote, assign your calendar on Google Calendar, and further, book a table automatically at the restaurant your wife named on twitter, send SMS to her by Google Voice, calculate drive route for her on Google Maps, and do it regularly with help of a Timer or Remember the Milk…so how’s it?

New image uploader

Hi there, I will bring you two news: a good one and a bad one.

The good one

A new Image Uploader will be added in Hotot v0.9.7. Here is the screenshot in dev-version:

New Image Uploader

The new uploader is more polished and powerful than the old one. You can drag & drop a photo on it to upload. The more important, the new one works even in Hotot for Chrome.

Yea, you can upload photos in Hotot for Chrome now.

The bad one

Since the lack of support for some html5 features in libwebkit, we have to disable the new uploader in native Hotot. Yes, I mean the python version. You won’t meet the new uploader unless you are using Hotot for Chrome (sorry for that). Libwebkit is what a laggard!

Hotot image uploader reloaded

Earlier days I implement a polished image uploader, which support DND and have a nice UI, but only works in Hotot for Chrome.

Today, I made a couple modifications to make it work for Hotot. Now you can drag & drop a photo on it to upload as you did it in Hotot for Chrome.

moreover, a speech input trigger has been added to the compose box. But this feature is only available in Hotot for Chrome.

So, enjoy it. :)

Color labels


We’ve made a decision to regularly update this blog, in order to make it more “Developer Blog” instead of “News Board”. I, Marguerite or Maga, as a close insider to Hotot team, will introduce current development focus, developers’ activities, and unleashed features here continuously.

Nowadays our main (almost solo) developer @shellex is tightly coding Hotot’s redesigned Kismet Content Filter Firewall. Theoretically, it will be a click-away filter system for fresh users, and Regex-like auto-precessing assistant for geeks through built-in macros. I’ll blog about it in detail later this week.

Yesterday an idea bumped up, so I designed and pushed her to code overnight temporarily on this new feature: Color Label.

What is Color Label? it’s colored bars ahead of tweets visually, but grants users possibility to redistribute concentrations between followings and distinguish key roles you eagerly care about from ordinary crowd.

Here’s a snapshot under openSUSE:

Color Label in Hotot

And here’s the default color pattern I mixed, each of the colors ships with a unique name to show our honor to specific person or affair, like scientist names an asteroid:

Default Color Pattern in Hotot

From left to right, top to bottom, the color names are:

  • #EB374B “cuddly”.

    @cuddly_v She’s really hot and fair lady.

  • #FFE11D “wanna have relationship with”.

    @mg12 He’s a dirty old man.

  • #73F560 “My journey is to the sea of stars”.

    Meme murmured hundreds of times a day by our developer @shellexy.

  • #63C6FF “Virushuo’s Integrity”.

    @virushuo A hardcore man always do the right thing, with or without a backup.

  • #FFA135 “Shiny old times before marriage”.

    Our friend, @whentp, recently gets engaged officially. This color helps him remember his bechelor party.

  • #C262FF “Panda acts cute”.

    @panda_l He just can’t stop selling his “Moe” to others in Chinese twitter community.

  • #5C33FF “Schizophrenia”.

    In memory of Opera’s @thruth. Former ancient active Chinese open source advocate, now deaf and heart-blinded like caught Schizophrenia.

  • #B30002 “Bloody Marguerite”

    Bravo for brilliant critics. my color btw.

  • #2E3333 “Hidden Dark Minds”.

    To @csslayer and someone who’s really good at disappointing you.

  • #7A005A “To a Cold Beauty”.

    An British Poem, to someone you like but dislikes you. @gaojiamin’s the cold beauty.

  • #FF6C00 “Assassin’s tango”.

    A latin rhythmix well known in 1960s. to @shellex, She’s as open as open source (@shellex’s comment: Negative).

  • #B4FC2C “Titian’s elegance”.

    @tixiang, the Queen of Elegance.

  • #00FC50 “Pretty wife”.

    @arthur369, a pretty wife is like a spring.

  • #F4F50A “tranquil love nemesis”.

    Our friend, @lovenemesis, co-founder of Linuxtoy, recently made a proposal.

  • #DBFFDB “Just can’t stop thinking of here”.

    in memory of everyone once here. It’s @dttoo’s bio.

  • #277077 “struggling adventurers”.

    mercy to person too eager to know the world and got himself hurt. to @kee_kun

I’ve packaged the snapshot version for openSUSE in home:opensuse_zh

Before publish @shellexy unleash the Chrome version

Ubuntu will soon catch up.

Have a nice day, all.