Facebook-style Micropublisher

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
publicmind's picture

Overview

Facebook-style Micropublisher (FBSMP), will let users publish content (such as images, links, videos, etc) in a stream like on Facebook. FBSMP will be a pluggable system whose functionality can be extended by writing small plugins. (i.e. different type of content can be published using plugins)

Description

While I was designing the module Facebook-style Links (FBSL), I realized the need for a pluggable system which can be used to add any kind of content to a user status on a social website crafted using Drupal. FBSMP, as FBSL, will be written using the FBSS API which currently supports just text statuses. FBSMP's statuses along with their attachments (images, photos, videos) will not be published as nodes and will be rendered using views which will make everything light and fast.

I envision the following to be accomplished as a part of GSoC:

  • Creating a pluggable system which will allow other modules to write plugins allowing users to publish content.
  • The following plugins will be supported by default:
    • Link: This plugin will let users post links along with their statuses, like on facebook and buzz. This has been actually implemented with FBSL but it will now be supported as a plugin. Also, I am planning to integrate it with emvideo, so that the users can post youtube (other video providers) links which will be automatically parsed to embed the video within the status.
    • Photo: This plugin will let users post image along with their statuses.
    • Video: This plugin will let users post video along with their statuses.
  • Integration with:

I have already had quite a few discussions with IceCreamYou and pribeh over the possibility of this module and the above is the result of several of these discussions. The above is a tentative list and is open to suggestions from the community.

Mentors

IceCreamYou

Contact Details

Use the contact page here: http://drupal.org/user/472412/contact

Difficulty

Medium to Hard

About Me

My name is Nitin Kr. Gupta. I am a final year student at IIT Guwahati, IN. Know more about me here:
http://drupal.org/user/472412
http://www.iitg.ernet.in/stud/n.gupta

I was introduced to Drupal during December 2008, for the development of a module which then evolved into FeedAPI ImageGrabber. During the last one year and so, I have been actively involved in the development of other Drupal modules and recently released two more modules: Feeds Image Grabber and Facebook-style Links. I actively help in the support forums and have also reported bugs for several other modules.

Thanks,

Comments

Interesting...

Alex UA's picture

I definitely think this is an interesting project, it's well thought out, and you have a track record within the community, so I think it has a great chance of making it in. Some questions I have:
- Which of the integrations you list are critical to the project's success, if any?
- Are you developing this for Drupal 6 or 7?

If it's 7 (and I definitely encourage you to make this a D7 project)
- Will this use the core Fields system?
- Will this leverage the new File system capabilities?
- Will this work with the new Media module?

Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology

thanks :)

publicmind's picture

I am happy that you liked the idea, here are the clarifications:

The following integrations are critical:

  • activity: with activity, one is able to produce a stream of notifications which are used by almost every social website.
  • rules: Rules is such a fantastic and powerful module, and supports several other modules (such as heartbeat, which is another module to log user activity) that I can't think of reasons not integrating it with FBSMP.

Other than the above, I think triggers, appbar, userpoints will bring bonus points for the project and increase its usability.

I will be developing it for D6, as FBSS is currently available for D6 only. (Even I am interested to port it to D7, but I do not want to duplicate the functionality of FBSS in D7 with FBSMP and will like to wait as IceCreamYou has plans to port FBSS to D7)

regards,

Hi, I'm the maintainer of

IceCreamYou's picture

Hi, I'm the maintainer of Facebook-style Statuses. As Nitin has mentioned we've had several conversations about this, and I'd love to mentor this project. I've actually been planning something like this for a long time, but I never had the time to implement it on my own.

Re: the integrations, Nitin's list appears to be based on alerts that FBSS sends out when it saves a status. (There are actually an extensive number of integrations with other modules which I think would be useful -- to me, the most important are Views, Flag, Rules, and Activity, in that order.)

What we've worked on so far has been for D6, primarily because FBSS is not yet ported to D7. I do plan to port it, but I'm not sure when, and it may involve extensive API changes after implementing abstraction of statuses from users and potentially also switching to the Entity API. So that port is likely to be complicated and wouldn't be finished in time for serious GSoC work.

Obviously my view is biased here, but I think this proposal is really critical. Every website these days wants to be social (because it's what their users want) and by far the most successful social websites are those with status/content streams. These sites have entire ecosystems built around this feature because it is a major factor that keeps bringing users back -- the main reason people spend so much time on social networking sites and more time on Facebook than on the other top 9 websites combined (5.5% of the total time Americans spend on the internet). Having FBSS makes Drupal competitive in the social realm, but having FBSMP would make Drupal competitive even with dedicated social networking solutions like Ning and Buddypress. It would also far surpass the relatively weak offerings Joomla! has in the microblogging/stream department.

FBSS itself is very mature and stable at this point, and it is designed in the Drupal Way -- clean, highly extensible code, and with usability in mind -- and FBSMP is a logical complement which IMHO will dramatically bolster Drupal's social ecosystem.

Worthy proposal

Michelle's picture

I want to second ICY up there. I've been working in the SN area of Drupal for some time and this is a module that would be incredibly useful. ICY would be an awesome mentor as well.

Michelle

thanks

publicmind's picture

I would love to hear from the community about the more possible integrations and features (plugins) that would be crucial in the initial release of this module.

Regards,
publicmind

awesome idea

kyle_mathews's picture

Definitely like this idea. There's an emerging protocol soup for sharing this sort of stuff around the web. See http://code.google.com/apis/buzz/ for example.

It'd be great if (perhaps not this project but it'd support it) plugins could be written for Feeds as well to suck in activity feeds and push them into the Drupal micropublisher.

Kyle Mathews

Right now FBSS outputs data

IceCreamYou's picture

Right now FBSS outputs data in various formats -- XML, JSON, plain-text -- for that purpose. I call that the Open API, but I plan to deprecate it moving forward in favor of a more generic solution, hopefully before Micropublisher is released. For example, since FBSS integrates with Views, it is probably already possible to create a view with an RSS formatter that would allow feeding FBSS data to Feeds.

However, FBSS doesn't currently have a way for Feeds to save statuses (although the API is there on both ends). If you'd like to write the plugin for this, or if this is something you'd really like to see come to fruition, please feel free to open an issue in the queue.

Once Micropublisher works and is stable on its own (and with Views integration) then hopefully it will gradually add support for all of the many modules that FBSS itself supports.

You may always want to talk

gdd's picture

You may always want to talk to RobLoach, who has been working for the last year on Drupal as a microblogging platform as part of a Knight Drupal Initiative grant.

I talked to Rob Loach last

IceCreamYou's picture

I talked to Rob Loach last year when he was starting out to encourage him to join forces on FBSS since it was already mature and developed. I don't remember the details of the conversation, but he contended that what he was designing was unrelated. Either way, FBSS is much bigger and better than it was then, with over 2000 websites using it according to drupal.org stats -- but if Rob would like to collaborate I am open to discussion as I'm sure Nitin is as well.

XMPP?

aaron's picture

XMPP would be necessary for any real scalability, I would imagine. Has that been part of the discussion, and/or is it part of the roadmap?

Aaron Winborn
Drupal Multimedia (my book, available now!)
AaronWinborn.com
Advomatic

Only if you want to CRUD lots

IceCreamYou's picture

Only if you want to CRUD lots of statuses remotely, which I have not had any requests to do. FBSS as-is should scale well to at least hundreds of thousands of statuses a month with proper server setup and optimization techniques. I would eventually be open to integrating with XMPP and/or Services if there is serious demand. (We haven't discussed this for the Micropublisher either, although the same applies.)

Thanks for all the responses,

publicmind's picture

Thanks for all the responses, I was AFK for the last 2 days so couldn't participate in the conversation. I think ICY has already mentioned what I want to say. I agree that once Micropublisher is stable (with FBSS API), support for other modules and plugins will come in gradually.

@Kyle: I definitely like the idea for connecting other sites to Micropublisher (as Buzz did recently).

I really like the idea, and

blup's picture

I really like the idea, and think this would be a very useful extension to the other SN modules available. However, and this is just my opinion, I really dislike the whole Facebook-style thing. Why not just call it Micropublisher :)

Awww!!

publicmind's picture

This definitely came up during the discussion, and we exchanged several mails before the name was finalized. At last, I pressed that we keep the name as Facebook-style Micropublisher, for two reasons:

1) it will be based on FBSS API, so wanted to keep up with it.
2) with 'Facebook-style', user gets a visualization about what the module would do even before using it. (now, who doesn't know what Facebook is?)

Having said that, as ICY suggested we can always drop 'Facebook-style' during discussions and just switch to 'micropub' or MP :-)

Hi, great seeing this emerge

Summit's picture

Hi, great seeing this emerge as GSOC projectproposal.
I would love to see integration of FB Micropublisher info into the "normal" drupal node system. As such the statusinfo could be used to fill CCK-based nodes. For example the FBSL info could be put into the CCK-link field (or may be weblinks nodetype).
So integration and usage of nodebiased modules would be opened up to this great line of FBSS modules!

greetings, Martijn

This is never going to happen

IceCreamYou's picture

This is never going to happen in the sense that you imagine. Not using nodes was the first design decision I made when I designed FBSS and it's going to stay that way. It's possible to achieve something Twitter-like using nodes by themselves if you really know what you're doing, and I think the Microblog module is supposed to get you most of the way there (although it's not anywhere near as full-featured as FBSS).

However, it couldn't be terribly difficult to write a script to convert data from statuses to nodes or vice versa. In addition, once the Micropublisher plugin format is stable, it should theoretically be possible to write a plugin that would attach nodes to statuses. That's not part of our current discussions or one of our long-term goals at the moment, but it should eventually be possible for someone else to write a module that allows nodes to be used as Micropublisher attachment types.

IceCreamYou said: "It should

alexmc's picture

IceCreamYou said: "It should eventually be possible for someone else to write a module that allows nodes to be used as Micropublisher attachment types."

Do you know if this has happened at all? I can see that we can include photos, and links, and various other media in a status update, but I haven't seen anything which lets me link to a node....

Thanks

Hi IceCreamYou, Thanks for

Summit's picture

Hi IceCreamYou,
Thanks for the update. I hope somebody steps up to write the script to convert data from statuses to nodes. Because then both ends would be great. FBSS style input and content building, and content usage and content improvements on the nodepart.
I understead your comment and am looking forward to FB Micropublisher!
Greetings, Martijn

I totally support this

pribeh's picture

I totally support this initiative and with great enthusiasm.

With the combined power of FBSS and FBSMP Drupal could put all other content management systems to shame in the SN category. However, this really not only opens the playing field for SN sites based upon Drupal but also provides a very light-weight solution for posting various attachments for both commercial and noncommercial enterprises potentially, improving their workflows.

I imagine this could work out great for a company or NGO that needs to quickly share documents (think pdfs) either internally or publicly with only a simple message or title. There are a ton of situations where organizations require the ability to simply attach something or other without the hassle of filling out a node form. Nor does each case require the burden of data that comes with a node in the database, in D6 at least. I've seen FBSS improve workflows for sharing information within an comp/org, and FBSMP is the perfect augmentation to this type of workflow.

There are a myriad of use-cases for this module.

Thanks for all the comments

publicmind's picture

Thanks for all the comments and suggestions.

I have signed up on GSoC site and submitted my proposal after incorporating the comments from this section. The proposal is available here: http://socghop.appspot.com/gsoc/student_proposal/show/google/gsoc2010/pu...

Regards,

FBSMP

publicmind's picture

I have created the project page (http://drupal.org/project/fbsmp) and have started to commit the code on which I have been working for last 1 month and so. Link and Photo plugin are more or less ready for use. Integration with Activity, Triggers, Input Filters, is also functional now. Try it now and drop me your reviews here.

Cheers,

Great

Baber Javed's picture

Exactly what I was looking for, would love to help out with development in anyway!

Thanks baberjaved

publicmind's picture

Help in support queue, report bugs, assign them to yourself... there is lot you can do.

Cheers,

Can fbsmp be google-buzz-like

verynic's picture

Can fbsmp be google-buzz-like style.
all go around content,not fragment like the activity “who and who have been friends”.
and an avatar is needed,comments list under the main content,just like buzz,it's so clean and cool.

and in the streamline ,it should include any customizable content type node,like blog,image,microblog

if blog post is too long,buzz-style is the just solution,and as well as comments.

work with user relationships and node private,in the streamline,it can make relationship+private filter.

it should list just friends'(two-way relationship),and the following'(one way relationship)

rules integration without attachments

alexmoreno's picture

the rules integration says: "... submits or deletes a status which has a FBSMP attachment".

But, how about notifying the user that someone has posted a message on his wall WITHOUT attachment? Can this be done?

Thanks in advance.

Google Summer of Code 2010

Group organizers

Group categories

Important Announcement

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: