Xe / Ponifuse

Ponifies files at load and de-ponifies them at write time (fuse module)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ponifuse is an experimental project in applying the text-replacement rules of Ponify to file transparently as they are written and read.

THIS DOES NOT WORK YET


Story time! This is a modified version of the reddit post that started this all.

So, about a month or so ago, one of my floormates, Derp called me "gay" for liking and watching My Little Pony, right? He was met with the full force of Love and Tolerance. eg:

him

"Dude, it's a [redacted] girl's show, you are gay." ಠ_ಠ

me

"Have you seen it? You shouldn't judge something by first appearances." and he gave up from there (pro tip: love and tolerance beats all).

So, about a week ago (from date of writing), I installed ponify on his browesr and completely hid it. Today he found out the magic. And I found out he thought the internet was broken, and he went over to my desktop and laptop to confirm this. Oh, I should mention, I have ponify on both my boxes. I verified to him that he was searching for "The Filly With The Dragon Cutie Mark", and not "The Girl With the Dragon Tattoo". The look on his face as he had a lapse of sanity was so worth it.

My next idea? Make Ponify modify files at load-time in the linux kernel (or possibly a FUSE module) to smartly ponify files at load-time by transparently mounting the ponifuse module at login (okay, this part is not my job, but it is an example case).

This is my implementation of that idea, in the form of a fuse module.


Implementation details:

Ponifuse pretends that the directory you have ponified is not changed at all, until you try to read from the files. As the file is opened, Ponifuse ponifies the file in question by replacing words in the file as according to the substitutions I have hard-coded. An example is that "everyone" becomes "everypony", and it also has the advantage of removing confusing and outdated words like "human" (whatever that means).

The full list of replacements is in src/list.txt if you want to see all of them. Fair warning, the list was generated by python in the REPL, so it is not optimized for humans reading it.


Special thanks to stillunnamed on irc.ponychat.net for helping me get the basics of the replacement logic hammered down. Also thanks to Justin Workman for talking me into this.

This project is only intended for fun, testing, and possibly being used in pranks against people you hate er... Love and Tolerate.

Oh, as of when I updated this part last, Derp has not gotten me back for the Ponify prank yet. As he does not use Linux, I cannot test the effectiveness of this project on a victim voulnteer. I will post details when he does get me back. If I die, please order me a pizza.

More to come.




About

Ponifies files at load and de-ponifies them at write time (fuse module)


Languages

Language:Python 100.0%