GSoC Proposal First Draft

David Edmundson david at davidedmundson.co.uk
Tue Mar 20 12:22:24 UTC 2012


On Tue, Mar 20, 2012 at 6:06 AM, Lasath Fernando <kde at lasath.org> wrote:
> Hi everyone,
>
> Some of you guys already know I want to do GSoC this year, and that I
> was going to use the idea that I came up with during woshibon of a
> plugin system that changed / added metadata to incoming messages. To
> the people that don't, well now you know.
>
> Here's an early version of my draft proposal. I don't have a copy of
> the official template I'm supposed to use, so I started putting things
> together that I might need to mention in the final copy. But I decided
> I'd like to get some feedback before I proceed any further.
>
> If I've forgotten to add something here, or added stuff that's
> unnecessary, do let me know.
>
> Project Goals:
> To have a functioning, dynamic set of plugins that process
> incoming/outgoing messages, and enrich them in some way before
> displaying them to the user. They will be shared between the
> KTp-Text-Ui, KTp-Chat-Plasmoid, KTp-Log-Viewer and be easily reusable
> by any future component that displays messages.
>
> *Auto-Replace plugin - replace user defined keywords in messages
> *Bookmarks - make bookmarks of recieved links
> *Latex - renders incoming latex in window (will need to look at how
> kopete did this)
> *Translator - translates incoming/outgoing messages to predefined languages
> *Pipes - pipe messages through external program
> *GTalk Formatting - turn “_this_ -or- *this*” into “this or this”

That was a formatting fail. Re-explain in words.

> *Image - make previews of links to images in chat
> *Youtube - embed or generate previews for youtube links in chat
> *Bugzilla - (or other KDE specific stuff) show title and description
> of link to bug
> *Wikipedia - Embed first paragraph (and image) from links to wikipedia
> *Description - Embed title and image (like facebook and google does
> when sharing) of an _any_ incoming link.
> *Highlight - highlight messages based on criteria
> *Search Commands - replaces commands like ‘gg:chuck norris’ with
>http://www.google.com/search?q=chuck+norris&ie=UTF-8&oe=UTF-8’ before
> sending.
>
>
> Implementation:
> The groundwork for this is already sort of laid. A little while ago, I
> created a MessageProcessor class and two plugins to gauge how feasible
> this project would be.
>
> The MessageProcessor is currently synchronous, and simply iterates
> through a list of hardcoded ‘Filters’ executing them one by one. Once
> all processing is complete, it returns the message to the client which
> can then display it to the user.
>
> By the end of this project, the MessageProcessor will be almost
> completely re-written. It will use KPluginLoader to load its filters
> at runtime. Each plugin will have a priority associated with it that
> the processor will use to determine the order it gets executed in.
>
> When a message arrives the client passes it to MessageProcessor to
> process, it will return straight away. Then using a completely
> asynchronous API, it will inform the client of the message being
> updated as each plugin finishes processing. The plugins will then have
> the ability to communicate with external servers, or do any other time
> consuming processing and update the message.
>
>
> Timeline:
> Um.. yeah. I’ll figure out how exactly I’m going to hack the space
> time continuum and detail it here in my next draft.
>

Very nice (except the timeline, which is a really important step)

Ok, things you've not talked about.
 - Incoming messages vs sending messages
 - Selecting plugins. Is KPluginSelector good enough (the one you see
everywhere else, like in kwin) or do we need to roll our own.
 - Will plugins be configurable? Which ones, and what?
 - How much code can you steal from Kopete/Other sources? Things like
the "latex maths one" would be a nightmare to write - but porting from
Kopete should only be a day long job. So it's worth making that clear.

I'd like you also phrase the bit about async stuff as "we intend to
kick kopete's ass by" - so it makes the project sound like it does new
stuff, not just porting. Maybe true for things like the Youtube
plugin, you can dress that up as "integrate social stuff".

Also look at the template on Melange, for your full proposal you need:
 - Why I'm great (that's you, not me)
 - What I've done


> --
> Cheers,
> Lasath
> _______________________________________________
> KDE-Telepathy mailing list
> KDE-Telepathy at kde.org
> https://mail.kde.org/mailman/listinfo/kde-telepathy


More information about the KDE-Telepathy mailing list