QVariantMap TweetSupplier::getPublications(QString pluginMethod)
{

    //connecting the QDBus with the widget
        QDBusMessage busMsg = QDBusMessage::createMethodCall("org.plexydesk.social", "/services","local.socioplexy.Configuration","getPluginsList");

        //creating the QDBus connection with the sessionBus.
        QDBusConnection bus = QDBusConnection::connectToBus(QDBusConnection::SessionBus, "socioplexy");

        /*Bus connection Checking..
        if(bus.isConnected())
                qDebug() << "QDBusConnection is successfull";
        else
            qDebug()<<"QDBusConnection is unsuccessfull";*/

        //listening for the reply from the QDBus
        QDBusPendingReply<QStringList> msgRep = bus.asyncCall(busMsg,10000);
        msgRep.waitForFinished();
        //if reply is valid only proceed the QDBus connection method calling
        if (msgRep.isValid())
        {
                QStringList plugins = msgRep.value();
                if (!plugins.isEmpty())
                {
                    int i=0,j;
                    //checking for the twitterplugin in the plugins list loaded.
                    for (j=0;j<plugins.count();j++)
                    {
                        if (plugins.value(j)=="weatherplugin"){
                            i = 1;  //Flag for plugin found
                            break;
                        }
                    }

                    //if plugin twitterplugin is found then request data from the plugin
                    if (i == 1)
                    {
                        QString pluginName = plugins.value(j);
                        QDBusMessage pluginBusMsg;
                        pluginBusMsg = QDBusMessage::createMethodCall("org.plexydesk.social", "/services","local.socioplexy.Configuration","supportedMethods");
                        QList<QVariant> argsSuppMethods;
                        argsSuppMethods << QVariant(pluginName);
                        pluginBusMsg.setArguments(argsSuppMethods);
                        qDebug()<<pluginBusMsg.arguments();
                        QDBusPendingReply<QStringList> supportMsgRep = bus.asyncCall(pluginBusMsg,1000);
                        supportMsgRep.waitForFinished();

                        if (supportMsgRep.isValid())
                        {
                            QStringList supportedMethodsList = supportMsgRep.value();
                            if(supportedMethodsList.contains(pluginMethod))
                            {
                                QDBusMessage getDataMsg;
                                QVariantMap args;
                                QList<QVariant> argsData;
                                getDataMsg = QDBusMessage::createMethodCall("org.plexydesk.social", "/services", "local.socioplexy.Configuration", "data");
                                argsData << QVariant("weatherplugin") << QVariant(pluginMethod) << QVariant(args);
                                getDataMsg.setArguments(argsData);
                                QDBusPendingReply<QVariantMap> recvData = bus.asyncCall(getDataMsg,10000);
                                recvData.waitForFinished();
                                if(recvData.isValid())
                                    return recvData.value();
                                else
                                {
                                    QVariantMap dummy;
                                    dummy["Network Error"] = "Data not recieved";
                                    return dummy;
                                }
                            }
                            else
                                qDebug() << "supportedMethods doesn't contain getPublicTimeline";
                        }
                        else
                        {
                            qDebug()<<"Error reply "<<supportMsgRep.error();
                        }
                    }
                    else
                    {
                        qDebug()<<"No matching plugin loaded...";
                    }
                }
                else
                {
                    qDebug()<<"No plugin name was retireved.";
                }
        }
        else
        {
                qDebug()<<"error reply"<<msgRep.error();
        }
}