diff --git a/plugins/LinksCloud/AddLinksDialog.cpp b/plugins/LinksCloud/AddLinksDialog.cpp deleted file mode 100644 index 366e2ccff..000000000 --- a/plugins/LinksCloud/AddLinksDialog.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2008 Robert Fernie - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -#include - -#include "AddLinksDialog.h" -//#include -#include "rsrank.h" - -/* Images for context menu icons */ -#define IMAGE_EXPORTFRIEND ":/images/exportpeers_16x16.png" -#define IMAGE_GREAT ":/images/filerating5.png" -#define IMAGE_GOOD ":/images/filerating4.png" -#define IMAGE_OK ":/images/filerating3.png" -#define IMAGE_SUX ":/images/filerating2.png" -#define IMAGE_BADLINK ":/images/filerating1.png" - -/** Constructor */ -AddLinksDialog::AddLinksDialog(QString url, QWidget *parent) -: QDialog(parent) -{ - /* Invoke the Qt Designer generated object setup routine */ - ui.setupUi(this); - - ui.headerFrame->setHeaderImage(QPixmap(":/images/irkick.png")); - ui.headerFrame->setHeaderText(tr("Add Link to Cloud")); - - setAttribute ( Qt::WA_DeleteOnClose, true ); - - /* add button */ - connect(ui.addLinkButton, SIGNAL(clicked()), this, SLOT(addLinkComment())); - connect(ui.closepushButton, SIGNAL(clicked()), this, SLOT(close())); - - connect( ui.anonBox, SIGNAL( stateChanged ( int ) ), this, SLOT( load ( void ) ) ); - - ui.linkLineEdit->setText(url); - - // RetroShareLink link(url); - -// if(link.valid() && link.type() == RetroShareLink::TYPE_FILE) -// ui.titleLineEdit->setText(link.name()); -// else - ui.titleLineEdit->setText(tr("New Link")); - - load(); -} - -int AddLinksDialog::IndexToScore(int index) -{ - if ((index == -1) || (index > 4)) - return 0; - int score = 2 - index; - return score; -} - -void AddLinksDialog::addLinkComment() -{ - /* get the title / link / comment */ - QString title = ui.titleLineEdit->text(); - QString link = ui.linkLineEdit->text(); - QString comment = ui.linkTextEdit->toPlainText(); - int32_t score = AddLinksDialog::IndexToScore(ui.scoreBox->currentIndex()); - - if ((link == "") || (title == "")) - { - QMessageBox::warning(NULL, tr("Add Link Failure"), tr("Missing Link and/or Title"), QMessageBox::Ok); - /* can't do anything */ - return; - } - - /* add it either way */ - if (ui.anonBox->isChecked()) - { - rsRanks->anonRankMsg("", link.toStdWString(), title.toStdWString()); - } - else - { - rsRanks->newRankMsg(link.toStdWString(), - title.toStdWString(), - comment.toStdWString(), score); - } - - close(); -} - -void AddLinksDialog::load() -{ - if (ui.anonBox->isChecked()) - { - - /* disable comment + score */ - ui.scoreBox->setEnabled(false); - ui.linkTextEdit->setEnabled(false); - - /* done! */ - return; - } - else - { - /* enable comment + score */ - ui.scoreBox->setEnabled(true); - ui.linkTextEdit->setEnabled(true); - } -} diff --git a/plugins/LinksCloud/AddLinksDialog.h b/plugins/LinksCloud/AddLinksDialog.h deleted file mode 100644 index 9e4451117..000000000 --- a/plugins/LinksCloud/AddLinksDialog.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************** - * RetroShare GUI is distributed under the following license: - * - * Copyright (C) 2008 Robert Fernie - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -#ifndef _ADDLINKS_DIALOG_H -#define _ADDLINKS_DIALOG_H - -#include "ui_AddLinksDialog.h" - -class AddLinksDialog : public QDialog -{ - Q_OBJECT - -public: - /** Default Constructor */ - AddLinksDialog(QString url, QWidget *parent = 0); - /** Default Destructor */ - - static int IndexToScore(int index); - -public slots: - void addLinkComment(); - - void load(); - -private: - /** Qt Designer generated object */ - Ui::AddLinksDialog ui; -}; - -#endif diff --git a/plugins/LinksCloud/AddLinksDialog.ui b/plugins/LinksCloud/AddLinksDialog.ui deleted file mode 100644 index 26018091d..000000000 --- a/plugins/LinksCloud/AddLinksDialog.ui +++ /dev/null @@ -1,244 +0,0 @@ - - - AddLinksDialog - - - - 0 - 0 - 614 - 415 - - - - Add Link - - - - :/images/rstray3.png:/images/rstray3.png - - - - 0 - - - 0 - - - - - QFrame::NoFrame - - - QFrame::Raised - - - - - - - QFrame::NoFrame - - - QFrame::Raised - - - - - - Cancel - - - - - - - Add Link - - - false - - - true - - - - - - - Qt::Horizontal - - - - 375 - 20 - - - - - - - - Add a new Link - - - - 1 - - - - - - - - - Title: - - - - - - - Url: - - - - - - - - - - - - - - - 0 - 0 - - - - - - - - - - - - - 16777215 - 40 - - - - - - - Add Anonymous Link - - - - - - - - +2 Great! - - - - :/images/filerating5.png:/images/filerating5.png - - - - - +1 Good - - - - :/images/filerating4.png:/images/filerating4.png - - - - - 0 Okay - - - - :/images/filerating3.png:/images/filerating3.png - - - - - -1 Sux - - - - :/images/filerating2.png:/images/filerating2.png - - - - - -2 Bad Link - - - - :/images/filerating1.png:/images/filerating1.png - - - - - - - - Qt::Horizontal - - - - 299 - 20 - - - - - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - - - - - - - - - - - - HeaderFrame - QFrame -
gui/common/HeaderFrame.h
- 1 -
-
- - - - -
diff --git a/plugins/LinksCloud/LinksCloud.pro b/plugins/LinksCloud/LinksCloud.pro deleted file mode 100644 index fe904d930..000000000 --- a/plugins/LinksCloud/LinksCloud.pro +++ /dev/null @@ -1,37 +0,0 @@ -!include("../Common/retroshare_plugin.pri"): error("Could not include file ../Common/retroshare_plugin.pri") - -CONFIG += qt uic qrc resources - -greaterThan(QT_MAJOR_VERSION, 4) { - # Qt 5 - QT += widgets -} - -SOURCES = p3ranking.cc LinksDialog.cpp rsrankitems.cc AddLinksDialog.cpp LinksCloudPlugin.cpp -HEADERS = rsrank.h p3ranking.h LinksDialog.h rsrankitems.h AddLinksDialog.h LinksCloudPlugin.h -FORMS = LinksDialog.ui AddLinksDialog.ui - -TARGET = LinksCloud - -RESOURCES = LinksCloud_images.qrc lang/LinksCloud_lang.qrc - -TRANSLATIONS += \ - lang/LinksCloud_ca_ES.ts \ - lang/LinksCloud_cs.ts \ - lang/LinksCloud_da.ts \ - lang/LinksCloud_de.ts \ - lang/LinksCloud_el.ts \ - lang/LinksCloud_en.ts \ - lang/LinksCloud_es.ts \ - lang/LinksCloud_fi.ts \ - lang/LinksCloud_fr.ts \ - lang/LinksCloud_hu.ts \ - lang/LinksCloud_it.ts \ - lang/LinksCloud_ja_JP.ts \ - lang/LinksCloud_ko.ts \ - lang/LinksCloud_nl.ts \ - lang/LinksCloud_pl.ts \ - lang/LinksCloud_ru.ts \ - lang/LinksCloud_sv.ts \ - lang/LinksCloud_tr.ts \ - lang/LinksCloud_zh_CN.ts \ No newline at end of file diff --git a/plugins/LinksCloud/LinksCloudPlugin.cpp b/plugins/LinksCloud/LinksCloudPlugin.cpp deleted file mode 100644 index f1993988b..000000000 --- a/plugins/LinksCloud/LinksCloudPlugin.cpp +++ /dev/null @@ -1,117 +0,0 @@ -#include -#include -#include - -#include "LinksCloudPlugin.h" -#include "LinksDialog.h" - -static void *inited = new LinksCloudPlugin() ; - -extern "C" { - void *RETROSHARE_PLUGIN_provide() - { - static LinksCloudPlugin *p = new LinksCloudPlugin() ; - - return (void*)p ; - } - // This symbol contains the svn revision number grabbed from the executable. - // It will be tested by RS to load the plugin automatically, since it is safe to load plugins - // with same revision numbers, assuming that the revision numbers are up-to-date. - // - uint32_t RETROSHARE_PLUGIN_revision = SVN_REVISION_NUMBER ; - - // This symbol contains the svn revision number grabbed from the executable. - // It will be tested by RS to load the plugin automatically, since it is safe to load plugins - // with same revision numbers, assuming that the revision numbers are up-to-date. - // - uint32_t RETROSHARE_PLUGIN_api = RS_PLUGIN_API_VERSION ; -} - -#define IMAGE_LINKS ":/images/irkick.png" - -void LinksCloudPlugin::getPluginVersion(int& major,int& minor,int& svn_rev) const -{ - major = 5 ; - minor = 4 ; - svn_rev = SVN_REVISION_NUMBER ; -} - -LinksCloudPlugin::LinksCloudPlugin() -{ - mRanking = NULL ; - mainpage = NULL ; - mIcon = NULL ; - mPlugInHandler = NULL; - mPeers = NULL; - mFiles = NULL; -} - -void LinksCloudPlugin::setInterfaces(RsPlugInInterfaces &interfaces){ - - mPeers = interfaces.mPeers; - mFiles = interfaces.mFiles; -} - -MainPage *LinksCloudPlugin::qt_page() const -{ - if(mainpage == NULL) - mainpage = new LinksDialog(mPeers, mFiles) ; - - return mainpage ; -} - -RsCacheService *LinksCloudPlugin::rs_cache_service() const -{ - if(mRanking == NULL) - { - mRanking = new p3Ranking(mPlugInHandler) ; // , 3600 * 24 * 30 * 6); // 6 Months - rsRanks = mRanking ; - } - - return mRanking ; -} - -void LinksCloudPlugin::setPlugInHandler(RsPluginHandler *pgHandler){ - mPlugInHandler = pgHandler; - -} - -QIcon *LinksCloudPlugin::qt_icon() const -{ - if(mIcon == NULL) - { - Q_INIT_RESOURCE(LinksCloud_images) ; - - mIcon = new QIcon(IMAGE_LINKS) ; - } - - return mIcon ; -} - -std::string LinksCloudPlugin::getShortPluginDescription() const -{ - return QApplication::translate("LinksCloudPlugin", "This plugin provides a set of cached links, and a voting system to promote them.").toUtf8().constData(); -} - -std::string LinksCloudPlugin::getPluginName() const -{ - return QApplication::translate("LinksCloudPlugin", "LinksCloud").toUtf8().constData(); -} - -QTranslator* LinksCloudPlugin::qt_translator(QApplication */*app*/, const QString& languageCode, const QString& externalDir) const -{ - if (languageCode == "en") { - return NULL; - } - - QTranslator* translator = new QTranslator(); - - if (translator->load(externalDir + "/LinksCloud_" + languageCode + ".qm")) { - return translator; - } else if (translator->load(":/lang/LinksCloud_" + languageCode + ".qm")) { - return translator; - } - - delete(translator); - return NULL; -} diff --git a/plugins/LinksCloud/LinksCloudPlugin.h b/plugins/LinksCloud/LinksCloudPlugin.h deleted file mode 100644 index e1c590ca5..000000000 --- a/plugins/LinksCloud/LinksCloudPlugin.h +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once - -#include -#include -#include "p3ranking.h" - -class LinksCloudPlugin: public RsPlugin -{ - public: - LinksCloudPlugin() ; - virtual ~LinksCloudPlugin() {} - - virtual RsCacheService *rs_cache_service() const ; - virtual MainPage *qt_page() const ; - virtual QIcon *qt_icon() const ; - virtual uint16_t rs_service_id() const { return RS_SERVICE_TYPE_RANK ; } - virtual QTranslator *qt_translator(QApplication *app, const QString& languageCode, const QString& externalDir) const; - - virtual void getPluginVersion(int& major,int& minor,int& svn_rev) const ; - virtual void setPlugInHandler(RsPluginHandler *pgHandler); - - virtual std::string configurationFileName() const { return std::string() ; } - - virtual std::string getShortPluginDescription() const ; - virtual std::string getPluginName() const; - virtual void setInterfaces(RsPlugInInterfaces& interfaces); - private: - mutable p3Ranking *mRanking ; - mutable RsPluginHandler *mPlugInHandler; - mutable RsFiles* mFiles; - mutable RsPeers* mPeers; - mutable MainPage* mainpage ; - mutable QIcon* mIcon ; -}; - diff --git a/plugins/LinksCloud/LinksCloud_images.qrc b/plugins/LinksCloud/LinksCloud_images.qrc deleted file mode 100644 index 8b2550249..000000000 --- a/plugins/LinksCloud/LinksCloud_images.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - images/irkick.png - - diff --git a/plugins/LinksCloud/LinksDialog.cpp b/plugins/LinksCloud/LinksDialog.cpp deleted file mode 100644 index 08ee39609..000000000 --- a/plugins/LinksCloud/LinksDialog.cpp +++ /dev/null @@ -1,994 +0,0 @@ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2008 Robert Fernie - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -#include -#include -#include -#include -#include -#include "LinksDialog.h" -#include -#include "AddLinksDialog.h" -#include "rsrank.h" -#include "util/QtVersion.h" - -#include - - -/* Images for context menu icons */ -#define IMAGE_EXPORTFRIEND ":/images/exportpeers_16x16.png" -#define IMAGE_GREAT ":/images/filerating5.png" -#define IMAGE_GOOD ":/images/filerating4.png" -#define IMAGE_OK ":/images/filerating3.png" -#define IMAGE_SUX ":/images/filerating2.png" -#define IMAGE_BADLINK ":/images/filerating1.png" -#define IMAGE_NOCOMMENTRATING ":/images/filerating0.png" -#define IMAGE_DOWNLOAD ":/images/download16.png" - -/****** - * #define LINKS_DEBUG 1 - *****/ - -/** Constructor */ -LinksDialog::LinksDialog(RsPeers *peers, RsFiles *files, QWidget *parent) -: MainPage(parent), mPeers(peers), mFiles(files) -{ - /* Invoke the Qt Designer generated object setup routine */ - ui.setupUi(this); - - connect( ui.linkTreeWidget, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( linkTreeWidgetCostumPopupMenu( QPoint ) ) ); - - - /* link combos */ - connect( ui.rankComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( changedSortRank( int ) ) ); - connect( ui.periodComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( changedSortPeriod( int ) ) ); - connect( ui.fromComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( changedSortFrom( int ) ) ); - connect( ui.topComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( changedSortTop( int ) ) ); - - /* add button */ - connect( ui.addButton, SIGNAL( clicked( void ) ), this, SLOT( addLinkComment( void ) ) ); - connect( ui.expandButton, SIGNAL( clicked( void ) ), this, SLOT( toggleWindows( void ) ) ); - - connect( ui.addToolButton, SIGNAL( clicked( ) ), this, SLOT( addNewLink( ) ) ); - - connect( ui.linkTreeWidget, SIGNAL( currentItemChanged ( QTreeWidgetItem *, QTreeWidgetItem * ) ), - this, SLOT( changedItem ( QTreeWidgetItem *, QTreeWidgetItem * ) ) ); - - connect( ui.linkTreeWidget, SIGNAL( itemDoubleClicked ( QTreeWidgetItem *, int ) ), - this, SLOT( openLink ( QTreeWidgetItem *, int ) ) ); - - connect( ui.anonBox, SIGNAL( stateChanged ( int ) ), this, SLOT( checkAnon ( void ) ) ); - - mStart = 0; - - - /* Set header resize modes and initial section sizes */ - QHeaderView * _header = ui.linkTreeWidget->header () ; - QHeaderView_setSectionResizeMode(_header, 0, QHeaderView::Interactive); - QHeaderView_setSectionResizeMode(_header, 1, QHeaderView::Interactive); - QHeaderView_setSectionResizeMode(_header, 2, QHeaderView::Interactive); - - _header->resizeSection ( 0, 400 ); - _header->resizeSection ( 1, 60 ); - _header->resizeSection ( 2, 150 ); - - ui.linkTreeWidget->setSortingEnabled(true); - - ui.linklabel->setMinimumWidth(20); - - - /* Set a GUI update timer - much cleaner than - * doing everything through the notify agent - */ - - QTimer *timer = new QTimer(this); - timer->connect(timer, SIGNAL(timeout()), this, SLOT(checkUpdate())); - timer->start(1000); -} - -void LinksDialog::checkUpdate() -{ - /* update */ - if (!rsRanks) - { - std::cerr << " rsRanks = 0 !!!!" << std::endl; - return; - } - - if (rsRanks->updated()) - { -#ifdef LINKS_DEBUG - std::cerr << " rsRanks was updated -> redraw()" << std::endl; -#endif - updateLinks(); - } - - return; -} - -void LinksDialog::linkTreeWidgetCostumPopupMenu( QPoint point ) -{ - - QMenu contextMnu( this ); - - QAction *voteupAct = new QAction(QIcon(IMAGE_EXPORTFRIEND), tr( "Share Link Anonymously" ), &contextMnu ); - connect( voteupAct , SIGNAL( triggered() ), this, SLOT( voteup_anon() ) ); - - - QMenu *voteMenu = new QMenu( tr("Vote on Link"), &contextMnu ); - voteMenu->setIcon(QIcon(IMAGE_EXPORTFRIEND)); - - QAction *vote_p2 = new QAction( QIcon(IMAGE_GREAT), tr("+2 Great!"), &contextMnu ); - connect( vote_p2 , SIGNAL( triggered() ), this, SLOT( voteup_p2() ) ); - voteMenu->addAction(vote_p2); - QAction *vote_p1 = new QAction( QIcon(IMAGE_GOOD), tr("+1 Good"), &contextMnu ); - connect( vote_p1 , SIGNAL( triggered() ), this, SLOT( voteup_p1() ) ); - voteMenu->addAction(vote_p1); - QAction *vote_p0 = new QAction( QIcon(IMAGE_OK), tr("0 Okay"), &contextMnu ); - connect( vote_p0 , SIGNAL( triggered() ), this, SLOT( voteup_p0() ) ); - voteMenu->addAction(vote_p0); - QAction *vote_m1 = new QAction( QIcon(IMAGE_SUX), tr("-1 Sux"), &contextMnu ); - connect( vote_m1 , SIGNAL( triggered() ), this, SLOT( voteup_m1() ) ); - voteMenu->addAction(vote_m1); - QAction *vote_m2 = new QAction( QIcon(IMAGE_BADLINK), tr("-2 Bad Link"), &contextMnu ); - connect( vote_m2 , SIGNAL( triggered() ), this, SLOT( voteup_m2() ) ); - voteMenu->addAction(vote_m2); - - QAction *downloadAct = new QAction(QIcon(IMAGE_DOWNLOAD), tr("Download"), &contextMnu); - connect(downloadAct, SIGNAL(triggered()), this, SLOT(downloadSelected())); - - contextMnu.addAction(voteupAct); - contextMnu.addSeparator(); - contextMnu.addMenu(voteMenu); - contextMnu.addSeparator(); - contextMnu.addAction(downloadAct); - - contextMnu.exec(ui.linkTreeWidget->viewport()->mapToGlobal(point)); -} - -void LinksDialog::changedSortRank( int index ) -{ - /* update */ - if (!rsRanks) - return; - - /* translate */ - uint32_t type = 0; - switch (index) - { - case 1: - type = RS_RANK_TIME; - break; - case 2: - type = RS_RANK_SCORE; - break; - default: - case 0: - type = RS_RANK_ALG; - break; - } - - if (type) - { - rsRanks->setSortMethod(type); - } - updateLinks(); -} - -void LinksDialog::changedSortPeriod( int index ) -{ - /* update */ - if (!rsRanks) - return; - - /* translate */ - uint32_t period = 0; - switch (index) - { - case 1: - period = 60 * 60 * 24 * 7; /* WEEK */ - break; - case 2: - period = 60 * 60 * 24; /* DAY */ - break; - default: - case 0: - period = 60 * 60 * 24 * 30; /* MONTH */ - break; - } - - if (period) - { - rsRanks->setSortPeriod(period); - } - updateLinks(); -} - -void LinksDialog::changedSortFrom( int index ) -{ - /* update */ - if (!rsRanks) - return; - - std::list peers; - - /* translate */ - switch (index) - { - default: - case 0: - break; - case 1: - peers.push_back(mPeers->getOwnId()); - break; - } - - if (peers.size() < 1) - { - rsRanks->clearPeerFilter(); - } - else - { - rsRanks->setPeerFilter(peers); - } - updateLinks(); -} - -#define ENTRIES_PER_BLOCK 100 - -void LinksDialog::changedSortTop( int index ) -{ - /* update */ - if (!rsRanks) - return; - - std::list peers; - - /* translate */ - switch (index) - { - default: - case 0: - mStart = 0; - break; - case 1: - mStart = 1 * ENTRIES_PER_BLOCK; - break; - case 2: - mStart = 2 * ENTRIES_PER_BLOCK; - break; - case 3: - mStart = 3 * ENTRIES_PER_BLOCK; - break; - case 4: - mStart = 4 * ENTRIES_PER_BLOCK; - break; - case 5: - mStart = -1; - break; - } - updateLinks(); -} - - -/* get the list of Links from the RsRanks. */ -void LinksDialog::updateLinks() -{ - - std::list rids; - std::list::iterator rit; - std::list::iterator cit; - -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::updateLinks()" << std::endl; -#endif - - /* Work out the number/entries to show */ - uint32_t count = rsRanks->getRankingsCount(); - uint32_t start; - - uint32_t entries = ENTRIES_PER_BLOCK; - if (count < entries) - { - entries = count; - } - - if (mStart == -1) - { - /* backwards */ - start = count-entries; - } - else - { - start = mStart; - if (start + entries > count) - { - start = count - entries; - } - } - - /* get a link to the table */ - QTreeWidget *linkWidget = ui.linkTreeWidget; - QList items; - - rsRanks->getRankings(start, entries, rids); - float maxRank = rsRanks->getMaxRank(); - - for(rit = rids.begin(); rit != rids.end(); rit++) - { - RsRankDetails detail; - if (!rsRanks->getRankDetails(*rit, detail)) - { - continue; - } - - /* create items */ - QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0); - - /* (0) Title */ - { - item -> setText(0, QString::fromStdWString(detail.title)); - item -> setSizeHint(0, QSize( 20,20 ) ); - - /* Bold and bigger */ - /*QFont font = item->font(0); - font.setBold(true); - font.setPointSize(font.pointSize() + 2); - item->setFont(0, font);*/ - } - - /* (1) Rank */ - { - std::ostringstream out; - out << 100 * (detail.rank / (maxRank + 0.01)); - item -> setText(1, QString::fromStdString(out.str())); - item -> setSizeHint(1, QSize( 20,20 ) ); - - /* Bold and bigger */ - /*QFont font = item->font(1); - font.setBold(true); - font.setPointSize(font.pointSize() + 2); - item->setFont(1, font);*/ - } - - /* (2) Link */ - { - item -> setText(2, QString::fromStdWString(detail.link)); - item -> setSizeHint(2, QSize( 20,20 ) ); - - /* Bold and bigger */ - /*QFont font = item->font(2); - font.setBold(true); - font.setPointSize(font.pointSize() + 2); - item->setFont(2, font);*/ - } - - /* (3) Date */ - /*{ - QDateTime qtime; - qtime.setTime_t(it->lastPost); - QString timestamp = qtime.toString("yyyy-MM-dd hh:mm:ss"); - item -> setText(3, timestamp); - }*/ - - - /* (4) rid */ - item -> setText(4, QString::fromStdString(detail.rid)); - - - /* add children */ - int i = 0; - for(cit = detail.comments.begin(); - cit != detail.comments.end(); cit++, i++) - { - /* create items */ - QTreeWidgetItem *child = new QTreeWidgetItem((QTreeWidget*)0); - - QString commentText; - QString peerScore; - if (cit->score > 1) - { - peerScore = "[+2] "; - child -> setIcon(0,(QIcon(IMAGE_GREAT))); - item -> setIcon(0,(QIcon(IMAGE_GREAT))); - //peerScore = "[+2 Great Link] "; - } - else if (cit->score == 1) - { - peerScore = "[+1] "; - child -> setIcon(0,(QIcon(IMAGE_GOOD))); - item -> setIcon(0,(QIcon(IMAGE_GOOD))); - //peerScore = "[+1 Good] "; - } - else if (cit->score == 0) - { - peerScore = "[+0] "; - child -> setIcon(0,(QIcon(IMAGE_OK))); - item -> setIcon(0,(QIcon(IMAGE_OK))); - //peerScore = "[+0 Okay] "; - } - else if (cit->score == -1) - { - peerScore = "[-1] "; - child -> setIcon(0,(QIcon(IMAGE_SUX))); - item -> setIcon(0,(QIcon(IMAGE_SUX))); - //peerScore = "[-1 Not Worth It] "; - } - else //if (cit->score < -1) - { - peerScore = "[-2 BAD] "; - child -> setIcon(0,(QIcon(IMAGE_BADLINK))); - item -> setIcon(0,(QIcon(IMAGE_BADLINK))); - //peerScore = "[-2 BAD Link] "; - } - - /* (0) Comment */ - if (cit->comment != L"") - { - commentText = peerScore + QString::fromStdWString(cit->comment); - } - else - { - commentText = peerScore + "No Comment"; - } - child -> setText(0, commentText); - - /* (2) Peer / Date */ - { - QDateTime qtime; - qtime.setTime_t(cit->timestamp); - QString timestamp = qtime.toString("yyyy-MM-dd hh:mm:ss"); - - QString peerLabel = QString::fromStdString(mPeers->getPeerName(cit->id)); - if (peerLabel == "") - { - peerLabel = "<"; - peerLabel += QString::fromStdString(cit->id); - peerLabel += ">"; - } - peerLabel += " "; - - peerLabel += timestamp; - child -> setText(2, peerLabel); - - } - - /* (4) Id */ - child -> setText(4, QString::fromStdString(cit->id)); - - if (i % 2 == 1) - { - /* set to light gray background */ - child->setBackground(0,QBrush(Qt::lightGray)); - child->setBackground(1,QBrush(Qt::lightGray)); - child->setBackground(2,QBrush(Qt::lightGray)); - } - - /* push to items */ - item->addChild(child); - } - - /* add to the list */ - items.append(item); - } - - /* remove old items */ - linkWidget->clear(); - linkWidget->setColumnCount(3); - - /* add the items in! */ - linkWidget->insertTopLevelItems(0, items); - - linkWidget->update(); /* update display */ - - -} - -void LinksDialog::openLink ( QTreeWidgetItem * item, int ) -{ -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::openLink()" << std::endl; -#endif - - /* work out the ids */ - if (!item) - { - -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::openLink() Failed Item" << std::endl; -#endif - return; - } - - std::string rid; - std::string pid; - - QTreeWidgetItem *parent = item->parent(); - if (parent) - { - /* a child comment -> ignore double click */ -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::openLink() Failed Child" << std::endl; -#endif - return; - } - -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::openLink() " << (item->text(2)).toStdString() << std::endl; -#endif - /* open a browser */ - QUrl url(item->text(2)); - QDesktopServices::openUrl ( url ); - - /* close expansion */ - bool state = item->isExpanded(); - item->setExpanded(!state); -} - -void LinksDialog::changedItem(QTreeWidgetItem *curr, QTreeWidgetItem *) -{ - /* work out the ids */ - if (!curr) - { - updateComments("", ""); - return; - } - - std::string rid; - std::string pid; - - QTreeWidgetItem *parent = curr->parent(); - if (parent) - { - rid = (parent->text(4)).toStdString(); - pid = (curr->text(4)).toStdString(); - -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::changedItem() Rid: " << rid << " Pid: " << pid; - std::cerr << std::endl; -#endif - - updateComments(rid, pid); - } - else - { - rid = (curr->text(4)).toStdString(); - -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::changedItem() Rid: " << rid << " Pid: NULL"; - std::cerr << std::endl; -#endif - - updateComments(rid, ""); - } -} - -void LinksDialog::checkAnon() -{ - changedItem(ui.linkTreeWidget->currentItem(), NULL); -} - - -int IndexToScore(int index) -{ - if ((index == -1) || (index > 4)) - return 0; - int score = 2 - index; - return score; -} - -int ScoreToIndex(int score) -{ - if ((score < -2) || (score > 2)) - return 2; - int index = 2 - score; - return index; -} - - -/* get the list of Links from the RsRanks. */ -void LinksDialog::updateComments(std::string rid, std::string ) -{ - std::list::iterator cit; - - - if (ui.anonBox->isChecked()) - { - /* empty everything */ - ui.titleLineEdit->setText(""); - ui.linkLineEdit->setText(""); - ui.linkTextEdit->setText(""); - ui.scoreBox->setCurrentIndex(ScoreToIndex(0)); - mLinkId = rid; /* must be set for Context Menu */ - - /* disable comment + score */ - ui.scoreBox->setEnabled(false); - ui.linkTextEdit->setEnabled(false); - - /* done! */ - return; - } - else - { - /* enable comment + score */ - ui.scoreBox->setEnabled(true); - ui.linkTextEdit->setEnabled(true); - } - - - RsRankDetails detail; - if ((rid == "") || (!rsRanks->getRankDetails(rid, detail))) - { - /* clear it up */ - ui.titleLineEdit->setText(""); - ui.linkLineEdit->setText(""); - ui.linkTextEdit->setText(""); - ui.scoreBox->setCurrentIndex(ScoreToIndex(0)); - mLinkId = rid; - return; - } - - - /* set Link details */ - ui.titleLineEdit->setText(QString::fromStdWString(detail.title)); - ui.linkLineEdit->setText(QString::fromStdWString(detail.link)); - ui.linklabel->setText(" " + QString::fromStdWString(detail.link) +""); - - - if (mLinkId == rid) - { - /* leave comments */ - //ui.linkTextEdit->setText(""); - return; - } - - mLinkId = rid; - - /* Add your text to the comment */ - std::string ownId = mPeers->getOwnId(); - - for(cit = detail.comments.begin(); cit != detail.comments.end(); cit++) - { - if (cit->id == ownId) - break; - } - - if (cit != detail.comments.end()) - { - QString comment = QString::fromStdWString(cit->comment); - ui.linkTextEdit->setText(comment); - ui.scoreBox->setCurrentIndex(ScoreToIndex(cit->score)); - } - else - { - ui.linkTextEdit->setText(""); - ui.scoreBox->setCurrentIndex(ScoreToIndex(0)); - - } - - return; -} - -void LinksDialog::addLinkComment( void ) -{ - /* get the title / link / comment */ - QString title = ui.titleLineEdit->text(); - QString link = ui.linkLineEdit->text(); - QString comment = ui.linkTextEdit->toPlainText(); - int32_t score = IndexToScore(ui.scoreBox->currentIndex()); - - if ((mLinkId == "") || (ui.anonBox->isChecked())) - { - if ((link == "") || (title == "")) - { - QMessageBox::warning ( NULL, tr("Add Link Failure"), tr("Missing Link and/or Title"), QMessageBox::Ok); - /* can't do anything */ - return; - } - - /* add it either way */ - if (ui.anonBox->isChecked()) - { - rsRanks->anonRankMsg("", link.toStdWString(), title.toStdWString()); - } - else - { - rsRanks->newRankMsg( - link.toStdWString(), - title.toStdWString(), - comment.toStdWString(), score); - } - - updateLinks(); - return; - } - - /* get existing details */ - - RsRankDetails detail; - if (!rsRanks->getRankDetails(mLinkId, detail)) - { - /* strange error! */ - QMessageBox::warning ( NULL, tr("Add Link Failure"), tr("Missing Link Data"), QMessageBox::Ok); - return; - } - - if (link.toStdWString() == detail.link) /* same link! - we can add a comment */ - { - if (comment == "") /* no comment! */ - { - QMessageBox::warning ( NULL, tr("Add Link Failure"), tr("Missing Comment"), QMessageBox::Ok); - return; - } - - rsRanks->updateComment(mLinkId, - comment.toStdWString(), - score); - } - else - { - QMessageBox::StandardButton sb = QMessageBox::Yes; - - if ((title.toStdWString() == detail.title) /* same title! - wrong */ - || (title == "")) - { - sb = QMessageBox::question ( NULL, tr("Link Title Not Changed"), tr("Do you want to continue?"), (QMessageBox::Yes | QMessageBox::No)); - } - - /* add Link! */ - if (sb == QMessageBox::Yes) - { - rsRanks->newRankMsg( - link.toStdWString(), - title.toStdWString(), - comment.toStdWString(), - score); - } - } - updateLinks(); - return; -} - -void LinksDialog::toggleWindows( void ) -{ - /* if msg header visible -> hide by changing splitter - */ - - QList sizeList = ui.msgSplitter->sizes(); - QList::iterator it; - - int listSize = 0; - int msgSize = 0; - int i = 0; - - for(it = sizeList.begin(); it != sizeList.end(); it++, i++) - { - if (i == 0) - { - listSize = (*it); - } - else if (i == 1) - { - msgSize = (*it); - } - } - - int totalSize = listSize + msgSize; - - bool toShrink = true; - if (msgSize < (int) totalSize / 10) - { - toShrink = false; - } - - QList newSizeList; - if (toShrink) - { - newSizeList.push_back(totalSize); - newSizeList.push_back(0); - ui.expandButton->setIcon(QIcon(QString(":/images/edit_add24.png"))); - ui.expandButton->setToolTip(tr("Expand")); - } - else - { - newSizeList.push_back(totalSize * 3/4); - newSizeList.push_back(totalSize * 1/4); - ui.expandButton->setIcon(QIcon(QString(":/images/edit_remove24.png"))); - ui.expandButton->setToolTip(tr("Hide")); - } - - ui.msgSplitter->setSizes(newSizeList); - return; -} - - -QTreeWidgetItem *LinksDialog::getCurrentLine() -{ - /* get the current, and extract the Id */ - - /* get a link to the table */ - QTreeWidget *peerWidget = ui.linkTreeWidget; - QTreeWidgetItem *item = peerWidget -> currentItem(); - if (!item) - { -#ifdef LINKS_DEBUG - std::cerr << "Invalid Current Item" << std::endl; -#endif - return NULL; - } - -#ifdef LINKS_DEBUG - /* Display the columns of this item. */ - std::ostringstream out; - out << "CurrentPeerItem: " << std::endl; - - for(int i = 1; i < 6; i++) - { - QString txt = item -> text(i); - out << "\t" << i << ":" << txt.toStdString() << std::endl; - } - std::cerr << out.str(); -#endif - - return item; -} - -void LinksDialog::voteup_anon() -{ - //QTreeWidgetItem *c = getCurrentLine(); - - if (mLinkId == "") - { - return; - } - - RsRankDetails detail; - if (!rsRanks->getRankDetails(mLinkId, detail)) - { - /* not there! */ - return; - } - - QString link = QString::fromStdWString(detail.link); -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::voteup_anon() : " << link.toStdString() << std::endl; -#endif - // need a proper anon sharing option. - rsRanks->anonRankMsg(mLinkId, detail.link, detail.title); -} - - - - -void LinksDialog::voteup_score(int score) -{ - if (mLinkId == "") - { - return; - } - - RsRankDetails detail; - if (!rsRanks->getRankDetails(mLinkId, detail)) - { - /* not there! */ - return; - } - - QString link = QString::fromStdWString(detail.link); - std::wstring comment; -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::voteup_score() : " << link.toStdString() << std::endl; -#endif - - - std::list::iterator cit; - /* Add your text to the comment */ - std::string ownId = mPeers->getOwnId(); - - for(cit = detail.comments.begin(); cit != detail.comments.end(); cit++) - { - if (cit->id == ownId) - break; - } - - if (cit != detail.comments.end()) - { - comment = cit->comment; - } - - rsRanks->updateComment(mLinkId, comment, score); -} - - -void LinksDialog::voteup_p2() -{ - voteup_score(2); -} - -void LinksDialog::voteup_p1() -{ - voteup_score(1); -} - -void LinksDialog::voteup_p0() -{ - voteup_score(0); -} - -void LinksDialog::voteup_m1() -{ - voteup_score(-1); -} - -void LinksDialog::voteup_m2() -{ - voteup_score(-2); -} - -void LinksDialog::downloadSelected() -{ - if (mLinkId == "") - { - return; - } - - RsRankDetails detail; - if (!rsRanks->getRankDetails(mLinkId, detail)) - { - /* not there! */ - return; - } - - QString link = QString::fromStdWString(detail.link); - std::wstring comment; -#ifdef LINKS_DEBUG - std::cerr << "LinksDialog::downloadSelected() : " << link.toStdString() << std::endl; -#endif - - //RetroShareLink rslink(QString::fromStdWString(detail.link)); - - //if(!rslink.valid() || rslink.type() != RetroShareLink::TYPE_FILE) - //{ -// QMessageBox::critical(NULL,"Badly formed link","This link is badly formed. Can't parse/use it. This is a bug. Please contact the developers.") ; -// return ; -// } - - /* retrieve all peers id for this file */ -// FileInfo info; -// rsFiles->FileDetails(rslink.hash().toStdString(), 0, info); - -// std::list srcIds; -// std::list::iterator pit; -// for (pit = info.peers.begin(); pit != info.peers.end(); pit ++) -// srcIds.push_back(pit->peerId); - -// rsFiles->FileRequest(rslink.name().toStdString(), rslink.hash().toStdString(), rslink.size(), "", 0, srcIds); -} - -void LinksDialog::addNewLink() -{ - - AddLinksDialog *nAddLinksDialog = new AddLinksDialog(""); - - nAddLinksDialog->show(); - - /* window will destroy itself! */ -} diff --git a/plugins/LinksCloud/LinksDialog.h b/plugins/LinksCloud/LinksDialog.h deleted file mode 100644 index 58c763449..000000000 --- a/plugins/LinksCloud/LinksDialog.h +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************** - * RetroShare GUI is distributed under the following license: - * - * Copyright (C) 2008 Robert Fernie - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -#ifndef _LINKS_DIALOG_H -#define _LINKS_DIALOG_H - -#include -#include -#include -#include "ui_LinksDialog.h" - - -class LinksDialog : public MainPage -{ - Q_OBJECT - -public: - /** Default Constructor */ - LinksDialog(RsPeers* peers, RsFiles* files, QWidget *parent = 0); - /** Default Destructor */ - - void insertExample(); - -private slots: - /** Create the context popup menu and it's submenus */ - void linkTreeWidgetCostumPopupMenu( QPoint point ); - - void voteup_anon(); - void voteup_score(int score); - void voteup_p2(); - void voteup_p1(); - void voteup_p0(); - void voteup_m1(); - void voteup_m2(); - void downloadSelected(); - - void changedSortRank( int index ); - void changedSortPeriod( int index ); - void changedSortFrom( int index ); - void changedSortTop( int index ); - - void updateLinks(); - void addLinkComment( void ); - void toggleWindows( void ); - - void openLink ( QTreeWidgetItem * item, int column ); - void changedItem(QTreeWidgetItem *curr, QTreeWidgetItem *prev); - void checkAnon(); - - void checkUpdate(); - - void addNewLink(); - -private: - -void updateComments(std::string rid, std::string pid); - - int mStart; /* start of rank list */ - std::string mLinkId; - - /* Worker Functions */ - /* (1) Update Display */ - - /* (2) Utility Fns */ - QTreeWidgetItem *getCurrentLine(); - - QTreeWidget *exampletreeWidget; - - // gui interface - RsPeers* mPeers; - RsFiles* mFiles; - - - /** Qt Designer generated object */ - Ui::LinksDialog ui; -}; - -#endif - diff --git a/plugins/LinksCloud/LinksDialog.ui b/plugins/LinksCloud/LinksDialog.ui deleted file mode 100644 index 6c2b06ab4..000000000 --- a/plugins/LinksCloud/LinksDialog.ui +++ /dev/null @@ -1,572 +0,0 @@ - - - LinksDialog - - - - 0 - 0 - 738 - 583 - - - - - 6 - - - 0 - - - - - - 0 - 0 - - - - Qt::Vertical - - - - - - - Qt::CustomContextMenu - - - - Title / Comment - - - - - Score - - - - - Peer / Link - - - - - - - - - - - - :/images/edit_remove24.png:/images/edit_remove24.png - - - - - - - Qt::Horizontal - - - - 16 - 20 - - - - - - - - - 75 - true - - - - Sort by - - - - - - - - Combo - - - - - Time - - - - :/images/kalarm.png:/images/kalarm.png - - - - - Ranking - - - - :/images/records.png:/images/records.png - - - - - - - - Qt::Horizontal - - - - 16 - 20 - - - - - - - - - 75 - true - - - - In last - - - - - - - - Month - - - - :/images/view_calendar_month.png:/images/view_calendar_month.png - - - - - Week - - - - :/images/view_calendar_week.png:/images/view_calendar_week.png - - - - - Day - - - - :/images/view_calendar_day.png:/images/view_calendar_day.png - - - - - - - - Qt::Horizontal - - - - 16 - 20 - - - - - - - - - 75 - true - - - - From - - - - - - - - All Peers - - - - :/images/user/friends24.png:/images/user/friends24.png - - - - - Own Links - - - - :/images/user/identity16.png:/images/user/identity16.png - - - - - - - - Qt::Horizontal - - - - 16 - 20 - - - - - - - - - 75 - true - - - - Show - - - - - - - - Top 100 - - - - :/images/records.png:/images/records.png - - - - - 101-200 - - - - - 201-300 - - - - - 301-400 - - - - - 401-500 - - - - - Bottom 100 - - - - - - - - QLabel{border: 2px solid #CCCCCC; -border-radius: 10px; -background: white; -padding:2} - - - true - - - Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - - - - - - - - 75 - true - - - - Link: - - - - - - - - - - - - - Qt::Horizontal - - - - 311 - 32 - - - - - - - - - 50 - false - - - - Add Anonymous Link - - - - - - - Add Link/Comment - - - - - - - - - - - Title: - - - - - - - QLineEdit{border: 2px solid #CCCCCC; -border-radius: 10px; -background: white;} - - - - - - - Score: - - - - - - - - +2 Great! - - - - :/images/filerating5.png:/images/filerating5.png - - - - - +1 Good - - - - :/images/filerating4.png:/images/filerating4.png - - - - - 0 Okay - - - - :/images/filerating3.png:/images/filerating3.png - - - - - -1 Sux - - - - :/images/filerating2.png:/images/filerating2.png - - - - - -2 Bad Link - - - - :/images/filerating1.png:/images/filerating1.png - - - - - - - - - - - - Url: - - - - - - - QLineEdit{border: 2px solid #CCCCCC; -border-radius: 10px; -background: white;} - - - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - QTextEdit{border: 2px solid #CCCCCC; -border-radius: 10px; -background: white;} - - - - - - - - - - - - 16777215 - 32 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - 2 - - - - - - 24 - 24 - - - - - - - :/images/irkick.png - - - true - - - - - - - - 75 - true - - - - Links Cloud - - - - - - - Qt::Horizontal - - - - 596 - 15 - - - - - - - - Add new link - - - - :/images/edit_add24.png:/images/edit_add24.png - - - - 24 - 16 - - - - true - - - - - - - - - - - - - - diff --git a/plugins/LinksCloud/images/irkick.png b/plugins/LinksCloud/images/irkick.png deleted file mode 100644 index b399814ff..000000000 Binary files a/plugins/LinksCloud/images/irkick.png and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_ca_ES.qm b/plugins/LinksCloud/lang/LinksCloud_ca_ES.qm deleted file mode 100644 index 16b844877..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_ca_ES.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_ca_ES.ts b/plugins/LinksCloud/lang/LinksCloud_ca_ES.ts deleted file mode 100644 index a85af322f..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_ca_ES.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Afegir enllaç - - - - Cancel - Cancel·la - - - - Add a new Link - Afegir un nou enllaç - - - - Title: - Títol: - - - - Url: - URL: - - - - Add Anonymous Link - Afegir enllaç anònim - - - - +2 Great! - +2 Fantàstic! - - - - +1 Good - +1 Molt bo - - - - 0 Okay - 0 Està bé - - - - -1 Sux - -1 És dolent - - - - -2 Bad Link - -2 Enllaç dolent - - - - Add Link to Cloud - Afegir enllaç al núvol - - - - New Link - Nou enllaç - - - - Add Link Failure - Afegir enllaç que falla - - - - Missing Link and/or Title - Enllaç i/o títol perdut - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Aquest complement proporciona un conjunt d'enllaços en cau i un sistema de votar-los i promocionar-los. - - - - LinksCloud - NúvolEnllaços - - - - LinksDialog - - - Title / Comment - Títol / Comentari - - - - Score - Puntuació - - - - Peer / Link - Contacte / Enllaç - - - - Sort by - Ordenat per - - - - Combo - Combinació - - - - Time - Temps - - - - Ranking - Classificació - - - - In last - En l'últim - - - - Month - Mes - - - - Week - Setmana - - - - Day - Dia - - - - From - Des de - - - - All Peers - Tots els contactes - - - - Own Links - Enllaços propis - - - - Show - Mostra - - - - Top 100 - Top 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Els últims 100 - - - - Link: - Enllaç: - - - - Add Anonymous Link - Afegir enllaç anònim - - - - Add Link/Comment - Afegir Enllaç/Comentari - - - - Title: - Títol: - - - - Score: - Puntuació: - - - - - +2 Great! - +2 Fantàstic! - - - - - +1 Good - +1 Molt bo - - - - - 0 Okay - 0 Està bé - - - - - -1 Sux - -1 És dolent - - - - - -2 Bad Link - -2 Enllaç dolent - - - - Url: - URL: - - - - Links Cloud - Núvol d'enllaços - - - - Add new link - Afegir nou enllaç - - - - Share Link Anonymously - Compartir enllaç anònimament - - - - Vote on Link - Votar un enllaç - - - - Download - Descarregar - - - - - - Add Link Failure - Afegir enllaç que falla - - - - Missing Link and/or Title - Enllaç i/o títol perdut - - - - Missing Link Data - Dades d'enllaç perdudes - - - - Missing Comment - Comentari perdut - - - - Link Title Not Changed - Títol d'enllaç no canviat - - - - Do you want to continue? - Vols continuar? - - - - Expand - Ampliar - - - - Hide - Amagar - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_cs.qm b/plugins/LinksCloud/lang/LinksCloud_cs.qm deleted file mode 100644 index 99e2ed5b8..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_cs.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_cs.ts b/plugins/LinksCloud/lang/LinksCloud_cs.ts deleted file mode 100644 index 78a6e743d..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_cs.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Přidat odkaz - - - - Cancel - Zrušit - - - - Add a new Link - Přidat nový odkaz - - - - Title: - Titulek - - - - Url: - Url: - - - - Add Anonymous Link - Přidat anonymní odkaz - - - - +2 Great! - +2 Výborný - - - - +1 Good - +1 Dobrý - - - - 0 Okay - 0 OK - - - - -1 Sux - -1 Špatný - - - - -2 Bad Link - -2 Špatný odkaz - - - - Add Link to Cloud - Přidat odkaz do Cloudu - - - - New Link - Nový odkaz - - - - Add Link Failure - Přidání odkazu selhalo - - - - Missing Link and/or Title - Chybí odkaz nebo titulek - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Tento zásuvný modul poskytuje sadu mezipaměti odkazů, a hlasovací systém na jejich podporu - - - - LinksCloud - LinksCloud - - - - LinksDialog - - - Title / Comment - Titulek / Komentáře - - - - Score - Skóre - - - - Peer / Link - Peer / Odkaz - - - - Sort by - Seřadit podle - - - - Combo - Dvojité - - - - Time - Čas - - - - Ranking - Žebříček - - - - In last - Jako poslední - - - - Month - Měsíc - - - - Week - Týden - - - - Day - Den - - - - From - Od - - - - All Peers - Všechny peery - - - - Own Links - Naše odkazy - - - - Show - Zobrazit - - - - Top 100 - Top 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Spodní 100 - - - - Link: - Odkaz: - - - - Add Anonymous Link - Přidat anonymní odkaz - - - - Add Link/Comment - Přidat odkaz / komentář - - - - Title: - Titulek: - - - - Score: - Skóre: - - - - - +2 Great! - +2 Výborný - - - - - +1 Good - +1 Dobrý - - - - - 0 Okay - 0 OK - - - - - -1 Sux - -1 Špatný - - - - - -2 Bad Link - -2 Špatný odkaz - - - - Url: - Url: - - - - Links Cloud - Odkazový Cloud - - - - Add new link - Přidat nový odkaz - - - - Share Link Anonymously - Sdílet odkaz anonymně - - - - Vote on Link - Volte na odkaze - - - - Download - Stáhnout - - - - - - Add Link Failure - Přidání odkazu selhalo - - - - Missing Link and/or Title - Chybí odkaz nebo titulek - - - - Missing Link Data - Chybějí odkazová data - - - - Missing Comment - Chybějící komentář - - - - Link Title Not Changed - Nebyl zadán titulek odkazu - - - - Do you want to continue? - Chcete pokračovat? - - - - Expand - Rozbalit - - - - Hide - Skrýt - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_da.qm b/plugins/LinksCloud/lang/LinksCloud_da.qm deleted file mode 100644 index 552d8b3f4..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_da.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_da.ts b/plugins/LinksCloud/lang/LinksCloud_da.ts deleted file mode 100644 index c0f97a460..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_da.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - - - - - Cancel - Annuller - - - - Add a new Link - - - - - Title: - - - - - Url: - - - - - Add Anonymous Link - - - - - +2 Great! - - - - - +1 Good - - - - - 0 Okay - - - - - -1 Sux - - - - - -2 Bad Link - - - - - Add Link to Cloud - - - - - New Link - - - - - Add Link Failure - - - - - Missing Link and/or Title - - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - - - - - LinksCloud - - - - - LinksDialog - - - Title / Comment - - - - - Score - - - - - Peer / Link - - - - - Sort by - - - - - Combo - - - - - Time - - - - - Ranking - - - - - In last - - - - - Month - - - - - Week - - - - - Day - - - - - From - - - - - All Peers - - - - - Own Links - - - - - Show - - - - - Top 100 - - - - - 101-200 - - - - - 201-300 - - - - - 301-400 - - - - - 401-500 - - - - - Bottom 100 - - - - - Link: - - - - - Add Anonymous Link - - - - - Add Link/Comment - - - - - Title: - - - - - Score: - - - - - - +2 Great! - - - - - - +1 Good - - - - - - 0 Okay - - - - - - -1 Sux - - - - - - -2 Bad Link - - - - - Url: - - - - - Links Cloud - - - - - Add new link - - - - - Share Link Anonymously - - - - - Vote on Link - - - - - Download - - - - - - - Add Link Failure - - - - - Missing Link and/or Title - - - - - Missing Link Data - - - - - Missing Comment - - - - - Link Title Not Changed - - - - - Do you want to continue? - - - - - Expand - - - - - Hide - - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_de.qm b/plugins/LinksCloud/lang/LinksCloud_de.qm deleted file mode 100644 index 699706eaa..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_de.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_de.ts b/plugins/LinksCloud/lang/LinksCloud_de.ts deleted file mode 100644 index 83fb01ae8..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_de.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Link hinzufügen - - - - Cancel - Abbrechen - - - - Add a new Link - Neuen Link hinzufügen - - - - Title: - Titel: - - - - Url: - Url: - - - - Add Anonymous Link - Anonym hinzufügen - - - - +2 Great! - +2 Großartig! - - - - +1 Good - +1 Gut - - - - 0 Okay - 0 In Ordnung - - - - -1 Sux - -1 Nervt - - - - -2 Bad Link - -2 Schlechter Link - - - - Add Link to Cloud - Link zur Wolke hinzufügen - - - - New Link - Neuer Link - - - - Add Link Failure - Link hinzufügen fehlgeschlagen - - - - Missing Link and/or Title - Titel und/oder Url fehlt - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Dieses Plug-in stellt Links und ein Wahlsystem zur Verfügung, um sie zu verbreiten. - - - - LinksCloud - Verknüpfungswolke - - - - LinksDialog - - - Title / Comment - Titel / Kommentar - - - - Score - Punkte - - - - Peer / Link - Nachbar / Link - - - - Sort by - Sortiere nach - - - - Combo - Kombiniert - - - - Time - Zeit - - - - Ranking - Platzierung - - - - In last - Im letzten - - - - Month - Monat - - - - Week - Woche - - - - Day - Tag - - - - From - Von - - - - All Peers - Alle Nachbarn - - - - Own Links - Eigene Links - - - - Show - Zeige - - - - Top 100 - Top 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Letzten 100 - - - - Link: - Link: - - - - Add Anonymous Link - Anonym hinzufügen - - - - Add Link/Comment - Link/Kommentar hinzufügen - - - - Title: - Titel: - - - - Score: - Punkte: - - - - - +2 Great! - +2 Großartig! - - - - - +1 Good - +1 Gut - - - - - 0 Okay - 0 In Ordnung - - - - - -1 Sux - -1 Nervt - - - - - -2 Bad Link - -2 Schlechter Link - - - - Url: - Url: - - - - Links Cloud - Verknüpfungswolke - - - - Add new link - Neuen Link hinzufügen - - - - Share Link Anonymously - Link anonym verteilen - - - - Vote on Link - Stimme für Link - - - - Download - Herunterladen - - - - - - Add Link Failure - Link hinzufügen fehlgeschlagen - - - - Missing Link and/or Title - Fehlender Link und/oder Titel - - - - Missing Link Data - Fehlende Linkdaten - - - - Missing Comment - Fehlender Kommentar - - - - Link Title Not Changed - Linktitel nicht geändert - - - - Do you want to continue? - Willst du fortfahren? - - - - Expand - Erweitern - - - - Hide - Verbergen - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_el.qm b/plugins/LinksCloud/lang/LinksCloud_el.qm deleted file mode 100644 index aafec7fb1..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_el.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_el.ts b/plugins/LinksCloud/lang/LinksCloud_el.ts deleted file mode 100644 index 854cf71d3..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_el.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Προσθέστε σύνδεσμο - - - - Cancel - Διακοπη - - - - Add a new Link - Προσθέσετε ένα νέο σύνδεσμο - - - - Title: - Τίτλος: - - - - Url: - URL: - - - - Add Anonymous Link - Προσθέστε ανώνυμη σύνδεση - - - - +2 Great! - +2 Μεγάλη! - - - - +1 Good - +1 Καλή - - - - 0 Okay - Εντάξει 0 - - - - -1 Sux - -1 Sux - - - - -2 Bad Link - -2 Κακή σύνδεση - - - - Add Link to Cloud - Προσθήκη συνδέσεων σε σύννεφο - - - - New Link - Νέα σύνδεση - - - - Add Link Failure - Προσθέστε αποτυχία σύνδεσης - - - - Missing Link and/or Title - Συνδετικός κρίκος ή/και τίτλο - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Αυτό το plugin παρέχει ένα σύνολο των προσωρινά αποθηκευμένων συνδέσεων, καθώς και ένα σύστημα ψηφοφορίας για την προώθηση τους. - - - - LinksCloud - LinksCloud - - - - LinksDialog - - - Title / Comment - Τίτλος / σχόλιο - - - - Score - Σκορ - - - - Peer / Link - Peer / Link - - - - Sort by - Ταξινόμηση κατά - - - - Combo - Combo - - - - Time - Χρόνος - - - - Ranking - Κατάταξη - - - - In last - Στο τελευταίο - - - - Month - Μήνα - - - - Week - Εβδομάδα - - - - Day - Ημέρα - - - - From - Απο - - - - All Peers - Όλοι οι φορείς - - - - Own Links - Δικες σας συνδέσεις - - - - Show - Εμφανιση - - - - Top 100 - Top 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Κάτω 100 - - - - Link: - Σύνδεση: - - - - Add Anonymous Link - Προσθέστε ανώνυμη σύνδεση - - - - Add Link/Comment - Προσθέστε σύνδεσμο/σχόλιο - - - - Title: - Τίτλος: - - - - Score: - Βαθμολογία: - - - - - +2 Great! - +2 Μεγάλη! - - - - - +1 Good - +1 Καλή - - - - - 0 Okay - Εντάξει 0 - - - - - -1 Sux - -1 Sux - - - - - -2 Bad Link - -2 Κακή σύνδεση - - - - Url: - URL: - - - - Links Cloud - Συνδέσεις σύννεφο - - - - Add new link - Προσθέστε νέα σύνδεση - - - - Share Link Anonymously - Μοιράσμα σύνδεσης ανώνυμα - - - - Vote on Link - Ψηφίσμα σύνδεσης - - - - Download - Λυψη - - - - - - Add Link Failure - Προσθέστε αποτυχία σύνδεσης - - - - Missing Link and/or Title - Συνδετικός κρίκος ή/και τίτλο - - - - Missing Link Data - Ελλείπουσα σύνδεση δεδομένων - - - - Missing Comment - Λείπει το σχόλιο - - - - Link Title Not Changed - Τίτλος συνδέσμου, δεν αλλάζει - - - - Do you want to continue? - Θέλετε να συνεχίσετε; - - - - Expand - Επεκταση - - - - Hide - Αποκρυψη - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_en.qm b/plugins/LinksCloud/lang/LinksCloud_en.qm deleted file mode 100644 index 9dad8dffc..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_en.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_en.ts b/plugins/LinksCloud/lang/LinksCloud_en.ts deleted file mode 100644 index 4ca524d76..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_en.ts +++ /dev/null @@ -1,331 +0,0 @@ - - - - - AddLinksDialog - - - - Add Link - - - - - Cancel - - - - - Add a new Link - - - - - Title: - - - - - Url: - - - - - Add Anonymous Link - - - - - +2 Great! - - - - - +1 Good - - - - - 0 Okay - - - - - -1 Sux - - - - - -2 Bad Link - - - - - Add Link to Cloud - - - - - New Link - - - - - Add Link Failure - - - - - Missing Link and/or Title - - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - - - - - LinksCloud - - - - - LinksDialog - - - Title / Comment - - - - - Score - - - - - Peer / Link - - - - - Sort by - - - - - Combo - - - - - Time - - - - - Ranking - - - - - In last - - - - - Month - - - - - Week - - - - - Day - - - - - From - - - - - All Peers - - - - - Own Links - - - - - Show - - - - - Top 100 - - - - - 101-200 - - - - - 201-300 - - - - - 301-400 - - - - - 401-500 - - - - - Bottom 100 - - - - - Link: - - - - - Add Anonymous Link - - - - - Add Link/Comment - - - - - Title: - - - - - Score: - - - - - - +2 Great! - - - - - - +1 Good - - - - - - 0 Okay - - - - - - -1 Sux - - - - - - -2 Bad Link - - - - - Url: - - - - - Links Cloud - - - - - Add new link - - - - - Share Link Anonymously - - - - - Vote on Link - - - - - Download - - - - - - - Add Link Failure - - - - - Missing Link and/or Title - - - - - Missing Link Data - - - - - Missing Comment - - - - - Link Title Not Changed - - - - - Do you want to continue? - - - - - Expand - - - - - Hide - - - - diff --git a/plugins/LinksCloud/lang/LinksCloud_es.qm b/plugins/LinksCloud/lang/LinksCloud_es.qm deleted file mode 100644 index 33893d884..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_es.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_es.ts b/plugins/LinksCloud/lang/LinksCloud_es.ts deleted file mode 100644 index c112ac9b0..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_es.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Añadir enlace - - - - Cancel - Cancelar - - - - Add a new Link - Añadir un nuevo enlace - - - - Title: - Título: - - - - Url: - Url: - - - - Add Anonymous Link - Añadir enlace anónimo - - - - +2 Great! - +2 ¡Excelente! - - - - +1 Good - +1 Muy bueno - - - - 0 Okay - 0 Bueno - - - - -1 Sux - -1 Pésimo - - - - -2 Bad Link - -2 Enlace malo - - - - Add Link to Cloud - Añadir enlace a la nube - - - - New Link - Nuevo enlace - - - - Add Link Failure - Añadir enlace fallido - - - - Missing Link and/or Title - Enlace y/o título perdido - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Este plugin proporciona un conjunto de enlaces en caché, y un sistema de votación para promoverlos. - - - - LinksCloud - Enlace en la nube - - - - LinksDialog - - - Title / Comment - Título / Comentario - - - - Score - Puntuación - - - - Peer / Link - Pares / Enlace - - - - Sort by - Ordenar por - - - - Combo - Combinar - - - - Time - Hora - - - - Ranking - Clasificación - - - - In last - En la última - - - - Month - Mes - - - - Week - Semana - - - - Day - Día - - - - From - De - - - - All Peers - Todos los pares - - - - Own Links - Enlaces propios - - - - Show - Mostrar - - - - Top 100 - Top 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Por debajo de 100 - - - - Link: - Enlace: - - - - Add Anonymous Link - Añadir enlace anónimo - - - - Add Link/Comment - Añadir enlace/comentario - - - - Title: - Título: - - - - Score: - Puntuación: - - - - - +2 Great! - +2 ¡Excelente! - - - - - +1 Good - +1 Muy bueno - - - - - 0 Okay - 0 Bueno - - - - - -1 Sux - -1 Pésimo - - - - - -2 Bad Link - -2 Enlace malo - - - - Url: - Url: - - - - Links Cloud - Enlaces en la nube - - - - Add new link - Añadir nuevo enlace - - - - Share Link Anonymously - Compartir enlace anónimamente - - - - Vote on Link - Votar el enlace - - - - Download - Descargar - - - - - - Add Link Failure - Añadir enlace fallido - - - - Missing Link and/or Title - Enlace y/o título perdido - - - - Missing Link Data - Faltan los datos del enlace - - - - Missing Comment - Falta el comentario - - - - Link Title Not Changed - El título del enlace no ha cambiado - - - - Do you want to continue? - ¿Desea continuar? - - - - Expand - Expandir - - - - Hide - Ocultar - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_fi.qm b/plugins/LinksCloud/lang/LinksCloud_fi.qm deleted file mode 100644 index 8a5a61a38..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_fi.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_fi.ts b/plugins/LinksCloud/lang/LinksCloud_fi.ts deleted file mode 100644 index 1a3818db9..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_fi.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Lisää linkki - - - - Cancel - Peru - - - - Add a new Link - Lisää uusi linkki - - - - Title: - Otsikko: - - - - Url: - Url: - - - - Add Anonymous Link - Lisää nimetön linkki - - - - +2 Great! - +2 Loistava! - - - - +1 Good - +1 Hyvä - - - - 0 Okay - 0 Kohtalainen - - - - -1 Sux - -1 Huono - - - - -2 Bad Link - -2 Kelvoton linkki - - - - Add Link to Cloud - Lisää linkki pilveen - - - - New Link - Uusi linkki - - - - Add Link Failure - Vika lisättäessä linkkiä - - - - Missing Link and/or Title - Puuttuva linkki ja/tai otsikko - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Tämä lisäosa näyttää joukon välimuistissa olevia linkkejä sekä äänestysjärjestelmän. - - - - LinksCloud - LinksCloud - - - - LinksDialog - - - Title / Comment - Otsikko / Kommentti - - - - Score - Pisteet - - - - Peer / Link - Vertainen / Linkki - - - - Sort by - Järjestä - - - - Combo - Yhdistelmä - - - - Time - Aika - - - - Ranking - Sijoitus - - - - In last - Viime - - - - Month - kuussa - - - - Week - viikolla - - - - Day - päivänä - - - - From - Lähettäjä - - - - All Peers - Kaikki vertaiset - - - - Own Links - Omat linkit - - - - Show - Näytä - - - - Top 100 - Ylimmät 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Alimmat 100 - - - - Link: - Linkki: - - - - Add Anonymous Link - Lisää nimetön linkki - - - - Add Link/Comment - Lisää linkki/kommentti - - - - Title: - Otsikko: - - - - Score: - Pisteet: - - - - - +2 Great! - +2 Loistava! - - - - - +1 Good - +1 Hyvä - - - - - 0 Okay - 0 Kohtalainen - - - - - -1 Sux - -1 Huono - - - - - -2 Bad Link - -2 Kelvoton linkki - - - - Url: - Url: - - - - Links Cloud - Links Cloud - - - - Add new link - Lisää uusi linkki - - - - Share Link Anonymously - Jaa linkki nimettömänä - - - - Vote on Link - Äänestä linkkiä - - - - Download - Lataa - - - - - - Add Link Failure - Vika lisättäessä linkkiä - - - - Missing Link and/or Title - Puuttuva linkki ja/tai otsikko - - - - Missing Link Data - Linkin tiedot puuttuvat - - - - Missing Comment - Kommentti puuttuu - - - - Link Title Not Changed - Linkin otsikkoa ei muutettu - - - - Do you want to continue? - Haluatko jatkaa? - - - - Expand - Laajenna - - - - Hide - Piilota - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_fr.qm b/plugins/LinksCloud/lang/LinksCloud_fr.qm deleted file mode 100644 index 7d54ddc03..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_fr.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_fr.ts b/plugins/LinksCloud/lang/LinksCloud_fr.ts deleted file mode 100644 index 13c3c09c4..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_fr.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Ajouter un lien - - - - Cancel - Annuler - - - - Add a new Link - Ajouter un nouveau lien - - - - Title: - Titre : - - - - Url: - Url : - - - - Add Anonymous Link - Ajouter un lien anonyme - - - - +2 Great! - +2 Parfait ! - - - - +1 Good - +1 Bien - - - - 0 Okay - 0 Ok - - - - -1 Sux - -1 Bof - - - - -2 Bad Link - -2 Mauvais lien - - - - Add Link to Cloud - Ajouter lien au nuage - - - - New Link - Nouveau lien - - - - Add Link Failure - Échec ajout de lien - - - - Missing Link and/or Title - Lien et/ou tiitre manquant - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Cette extension fournit un ensemble de liens en cache, et un système de vote pour les promouvoir. - - - - LinksCloud - LinksCloud - - - - LinksDialog - - - Title / Comment - Titre / Commentaire - - - - Score - Score - - - - Peer / Link - Contact / Lien - - - - Sort by - Trier par - - - - Combo - Combiné - - - - Time - Temps - - - - Ranking - Classement - - - - In last - Par - - - - Month - Mois - - - - Week - Semaine - - - - Day - Jour - - - - From - De - - - - All Peers - Tous les contacts - - - - Own Links - Propre liens - - - - Show - Montrer - - - - Top 100 - Top 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - 100 derniers - - - - Link: - Lien : - - - - Add Anonymous Link - Ajouter un lien anonyme - - - - Add Link/Comment - Ajouter Lien/Commentaire - - - - Title: - Titre : - - - - Score: - Score : - - - - - +2 Great! - +2 Parfait ! - - - - - +1 Good - +1 Bien - - - - - 0 Okay - 0 Ok - - - - - -1 Sux - -1 Bof - - - - - -2 Bad Link - -2 Mauvais lien - - - - Url: - Url : - - - - Links Cloud - Links Cloud - - - - Add new link - Ajouter un nouveau lien - - - - Share Link Anonymously - Partager le lien anonymement - - - - Vote on Link - Vote sur le lien - - - - Download - Télécharger - - - - - - Add Link Failure - Échec de l'ajout du lien - - - - Missing Link and/or Title - Lien et/ou titre manquant(s) - - - - Missing Link Data - Data Link manquant - - - - Missing Comment - Commentaire manquant - - - - Link Title Not Changed - Le titre du lien n'a pas été changé - - - - Do you want to continue? - Voulez-vous continuer ? - - - - Expand - Montrer - - - - Hide - Cacher - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_hu.qm b/plugins/LinksCloud/lang/LinksCloud_hu.qm deleted file mode 100644 index 0c1c75ab0..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_hu.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_hu.ts b/plugins/LinksCloud/lang/LinksCloud_hu.ts deleted file mode 100644 index f611e2d1b..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_hu.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Hivatkozás hozzáadása - - - - Cancel - Mégse - - - - Add a new Link - Új hivatkozás hozzáadása - - - - Title: - Cím: - - - - Url: - Url: - - - - Add Anonymous Link - Hivatkozás hozzáadása névtelenül - - - - +2 Great! - +2 Nagyon jó! - - - - +1 Good - +1 Tetszik - - - - 0 Okay - 0 Elmegy - - - - -1 Sux - -1 Rossz - - - - -2 Bad Link - -2 Nagyon rossz - - - - Add Link to Cloud - Hivatkozás hozzáadása a felhőhöz - - - - New Link - Új hivatkozás - - - - Add Link Failure - Hiba hozzáadása a hivatkozáshoz - - - - Missing Link and/or Title - Hiányzó hivatkozás és/vagy cím - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Ez a beépülő sok hivatkozást tesz elérhetővé, melyek egy szavazási rendszer segítségével értékelhetőek. - - - - LinksCloud - Hivatkozásfelhő - - - - LinksDialog - - - Title / Comment - Cím / Hozzászólás - - - - Score - Pontszám - - - - Peer / Link - Partner / Hivatkozás - - - - Sort by - Rendezés - - - - Combo - Kombó - - - - Time - Idő - - - - Ranking - Értékelés - - - - In last - Utoljára - - - - Month - Hónap - - - - Week - Hét - - - - Day - Nap - - - - From - Tőle - - - - All Peers - Összes partner - - - - Own Links - Saját hivatkozások - - - - Show - Mutatás - - - - Top 100 - 100 Legjobb - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - 100 Legrosszabb - - - - Link: - Hivatkozás: - - - - Add Anonymous Link - Hivatkozás hozzáadása névtelenül - - - - Add Link/Comment - Hivatkozás / Hozzászólás hozzáadása - - - - Title: - Cím: - - - - Score: - Pontszám: - - - - - +2 Great! - +2 Nagyon jó! - - - - - +1 Good - +1 Tetszik - - - - - 0 Okay - 0 Elmegy - - - - - -1 Sux - -1 Rossz - - - - - -2 Bad Link - -2 Nagyon rossz - - - - Url: - Url: - - - - Links Cloud - Hivatkozásfelhő - - - - Add new link - Új hivatkozás hozzáadása - - - - Share Link Anonymously - Hivatkozás megosztása névtelenül - - - - Vote on Link - Szavazás - - - - Download - Letöltés - - - - - - Add Link Failure - Hiba hozzáadása - - - - Missing Link and/or Title - Hiányzó hivatkozás és/vagy cím - - - - Missing Link Data - Hiányzó adat a hivatkozásnál - - - - Missing Comment - Hiányzó hozzászólás - - - - Link Title Not Changed - Hivatkozás címe nem változott meg - - - - Do you want to continue? - Folytatod? - - - - Expand - Lenyitás - - - - Hide - Elrejt - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_it.qm b/plugins/LinksCloud/lang/LinksCloud_it.qm deleted file mode 100644 index d3268be21..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_it.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_it.ts b/plugins/LinksCloud/lang/LinksCloud_it.ts deleted file mode 100644 index 93efcb778..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_it.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Aggiungi collegamento - - - - Cancel - Annulla - - - - Add a new Link - Aggiungi nuovo collegamento - - - - Title: - Titolo: - - - - Url: - URL: - - - - Add Anonymous Link - Aggiungi collegamento anonimo - - - - +2 Great! - +2 Grande! - - - - +1 Good - +1 Buono - - - - 0 Okay - 0 OK - - - - -1 Sux - -1 Scoccia - - - - -2 Bad Link - -2 Cattivo collegamento - - - - Add Link to Cloud - Aggiungi collegamento alla nuvola - - - - New Link - Nuovo collegamento - - - - Add Link Failure - Errore aggiunta collegamento - - - - Missing Link and/or Title - Collegamento e/o autore mancanti - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Il modulo aggiuntivo fornisce un insieme di collegamenti memorizzati, ed un sistema di voto per promuoverli. - - - - LinksCloud - Nuvola Collegamenti / LinksCloud - - - - LinksDialog - - - Title / Comment - Titolo / Commento - - - - Score - Punteggio - - - - Peer / Link - Contatto / Collegamento - - - - Sort by - Ordina per - - - - Combo - Combo - - - - Time - Tempo - - - - Ranking - Classifica - - - - In last - Alla fine - - - - Month - Mese - - - - Week - Settimana - - - - Day - Giorno - - - - From - Da - - - - All Peers - Tutti i contatti - - - - Own Links - Collegamenti propri - - - - Show - Mostra - - - - Top 100 - Top 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Ultimi 100 - - - - Link: - Collegamento: - - - - Add Anonymous Link - Aggiungi collegamento anonimo - - - - Add Link/Comment - Aggiungi Collegamento/Commento - - - - Title: - Titolo: - - - - Score: - Punteggio: - - - - - +2 Great! - +2 Grande! - - - - - +1 Good - +1 Buono - - - - - 0 Okay - 0 Okay - - - - - -1 Sux - -1 Scoccia - - - - - -2 Bad Link - -2 Cattivo collegamento - - - - Url: - URL: - - - - Links Cloud - Nuvola collegamenti - - - - Add new link - Aggiungi nuovo collegamento - - - - Share Link Anonymously - Condividi collegamento anonimamente - - - - Vote on Link - Vota il collegamento - - - - Download - Scarica - - - - - - Add Link Failure - Aggiungi errore collegamento - - - - Missing Link and/or Title - Collegamento e/o titolo mancante - - - - Missing Link Data - Collegamento dati mancante - - - - Missing Comment - Commento mancante - - - - Link Title Not Changed - Titolo collegamento invariato - - - - Do you want to continue? - Vuoi continuare? - - - - Expand - Allarga - - - - Hide - Nascondi - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_ja_JP.qm b/plugins/LinksCloud/lang/LinksCloud_ja_JP.qm deleted file mode 100644 index 0fe587e78..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_ja_JP.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_ja_JP.ts b/plugins/LinksCloud/lang/LinksCloud_ja_JP.ts deleted file mode 100644 index 7ca2214dc..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_ja_JP.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - - - - - Cancel - キャンセル - - - - Add a new Link - - - - - Title: - - - - - Url: - - - - - Add Anonymous Link - - - - - +2 Great! - - - - - +1 Good - - - - - 0 Okay - - - - - -1 Sux - - - - - -2 Bad Link - - - - - Add Link to Cloud - - - - - New Link - - - - - Add Link Failure - - - - - Missing Link and/or Title - - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - - - - - LinksCloud - - - - - LinksDialog - - - Title / Comment - - - - - Score - - - - - Peer / Link - - - - - Sort by - - - - - Combo - - - - - Time - - - - - Ranking - - - - - In last - - - - - Month - - - - - Week - - - - - Day - - - - - From - - - - - All Peers - - - - - Own Links - - - - - Show - - - - - Top 100 - - - - - 101-200 - - - - - 201-300 - - - - - 301-400 - - - - - 401-500 - - - - - Bottom 100 - - - - - Link: - - - - - Add Anonymous Link - - - - - Add Link/Comment - - - - - Title: - - - - - Score: - - - - - - +2 Great! - - - - - - +1 Good - - - - - - 0 Okay - - - - - - -1 Sux - - - - - - -2 Bad Link - - - - - Url: - - - - - Links Cloud - - - - - Add new link - - - - - Share Link Anonymously - - - - - Vote on Link - - - - - Download - ダウンロード - - - - - - Add Link Failure - - - - - Missing Link and/or Title - - - - - Missing Link Data - - - - - Missing Comment - - - - - Link Title Not Changed - - - - - Do you want to continue? - - - - - Expand - 展開 - - - - Hide - 非表示 - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_ko.qm b/plugins/LinksCloud/lang/LinksCloud_ko.qm deleted file mode 100644 index 789c669e8..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_ko.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_ko.ts b/plugins/LinksCloud/lang/LinksCloud_ko.ts deleted file mode 100644 index c83b1b154..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_ko.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - 링크 추가 - - - - Cancel - 취소 - - - - Add a new Link - 새 링크 추가 - - - - Title: - 제목: - - - - Url: - 주소: - - - - Add Anonymous Link - 익명 링크 추가 - - - - +2 Great! - +2 멋져요 :D - - - - +1 Good - +1 좋아요 :) - - - - 0 Okay - 0 괜찮아요 : | - - - - -1 Sux - -1 어우 :S - - - - -2 Bad Link - -2 후졌어요 :( - - - - Add Link to Cloud - 클라우드에 링크 추가 - - - - New Link - 새 링크 - - - - Add Link Failure - 잘못된 링크 추가 - - - - Missing Link and/or Title - 링크 또는 제목이 빠졌습니다 - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - 이 플러그인은 캐시에 저장한 링크 모음과, 링크를 알리기 위한 투표 시스템을 제공합니다. - - - - LinksCloud - 링크클라우드 - - - - LinksDialog - - - Title / Comment - 제목 / 답글 - - - - Score - 점수 - - - - Peer / Link - 피어 / 링크 - - - - Sort by - 정렬순 - - - - Combo - 조합 - - - - Time - 시간 - - - - Ranking - 순위 - - - - In last - 최신 - - - - Month - - - - - Week - - - - - Day - - - - - From - 보낸이 - - - - All Peers - 모든 피어 - - - - Own Links - 소유한 링크 - - - - Show - 표시 - - - - Top 100 - 상위 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - 하위 100 - - - - Link: - 링크: - - - - Add Anonymous Link - 익명 링크 추가 - - - - Add Link/Comment - 링크/답글 추가 - - - - Title: - 제목: - - - - Score: - 점수: - - - - - +2 Great! - +2 멋져요 :D - - - - - +1 Good - +1 좋아요 :) - - - - - 0 Okay - 0 괜찮아요 : | - - - - - -1 Sux - -1 어우 :S - - - - - -2 Bad Link - -2 후졌어요 :( - - - - Url: - 주소: - - - - Links Cloud - 링크 클라우드 - - - - Add new link - 새 링크 추가 - - - - Share Link Anonymously - 익명으로 링크 공유 - - - - Vote on Link - 링크에 투표 - - - - Download - 다운로드 - - - - - - Add Link Failure - 잘못된 링크 추가 - - - - Missing Link and/or Title - 링크 또는 제목이 빠졌습니다 - - - - Missing Link Data - 링크 데이터가 빠졌습니다 - - - - Missing Comment - 답글이 빠졌습니다 - - - - Link Title Not Changed - 링크 제목이 바뀌지 않았습니다 - - - - Do you want to continue? - 계속하시겠습니까? - - - - Expand - 확장 - - - - Hide - 숨김 - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_lang.qrc b/plugins/LinksCloud/lang/LinksCloud_lang.qrc deleted file mode 100644 index dd737ab14..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_lang.qrc +++ /dev/null @@ -1,24 +0,0 @@ - - - LinksCloud_ca_ES.qm - LinksCloud_cs.qm - LinksCloud_da.qm - LinksCloud_de.qm - LinksCloud_el.qm - LinksCloud_en.qm - LinksCloud_es.qm - LinksCloud_fi.qm - LinksCloud_fr.qm - LinksCloud_hu.qm - LinksCloud_it.qm - LinksCloud_ja_JP.qm - LinksCloud_ko.qm - LinksCloud_nl.qm - LinksCloud_pl.qm - LinksCloud_ru.qm - LinksCloud_sv.qm - LinksCloud_tr.qm - LinksCloud_zh_CN.qm - - - diff --git a/plugins/LinksCloud/lang/LinksCloud_nl.qm b/plugins/LinksCloud/lang/LinksCloud_nl.qm deleted file mode 100644 index 48d6e3763..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_nl.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_nl.ts b/plugins/LinksCloud/lang/LinksCloud_nl.ts deleted file mode 100644 index 5ae75f5dc..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_nl.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Voeg een Link toe - - - - Cancel - Annuleren - - - - Add a new Link - Voeg een nieuwe Link toe - - - - Title: - Titel: - - - - Url: - Url: - - - - Add Anonymous Link - Voeg een Anonieme Link toe - - - - +2 Great! - +2 Geweldig! - - - - +1 Good - +1 Goed - - - - 0 Okay - 0 Oke - - - - -1 Sux - -1 Slecht - - - - -2 Bad Link - -2 Slechte Link - - - - Add Link to Cloud - Voeg link toe aan de Cloud - - - - New Link - Nieuwe Link - - - - Add Link Failure - Link toevoegen mislukt - - - - Missing Link and/or Title - Ontbrekende Link en/of Titel - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Deze plugin geeft u een set van gecachte links en een stem systeem om die te promoten - - - - LinksCloud - LinksCloud - - - - LinksDialog - - - Title / Comment - Titel / Opmerkingen - - - - Score - Score - - - - Peer / Link - Verbinding / Link - - - - Sort by - Sorteer op - - - - Combo - Combo - - - - Time - Tijd - - - - Ranking - Stand - - - - In last - In last - - - - Month - Maand - - - - Week - Week - - - - Day - Dag - - - - From - Van - - - - All Peers - Alle Verbindingen - - - - Own Links - Links eigenaar - - - - Show - Toon - - - - Top 100 - Top 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Onderste 100 - - - - Link: - Link: - - - - Add Anonymous Link - Voeg een anonieme Link toe - - - - Add Link/Comment - Voeg Link/Opmerking toe - - - - Title: - Titel: - - - - Score: - Score: - - - - - +2 Great! - +2 Geweldig! - - - - - +1 Good - +1 Goed - - - - - 0 Okay - 0 Oke - - - - - -1 Sux - -1 Slecht - - - - - -2 Bad Link - -2 Slechte Link - - - - Url: - Url: - - - - Links Cloud - Links Cloud - - - - Add new link - Voeg een nieuwe Link toe - - - - Share Link Anonymously - Deel Link Anoniem - - - - Vote on Link - Stem op Link - - - - Download - Download - - - - - - Add Link Failure - Link toevoegen mislukt - - - - Missing Link and/or Title - Ontbrekende Link en/of Titel - - - - Missing Link Data - Ontbrekende Link data - - - - Missing Comment - Ontbrekende Opmerkingen - - - - Link Title Not Changed - Link titel niet veranderd - - - - Do you want to continue? - Wilt u doorgaan? - - - - Expand - Uitbreiden - - - - Hide - Verberg - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_pl.qm b/plugins/LinksCloud/lang/LinksCloud_pl.qm deleted file mode 100644 index b44eddac2..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_pl.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_pl.ts b/plugins/LinksCloud/lang/LinksCloud_pl.ts deleted file mode 100644 index 82d2624e4..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_pl.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Dodaj Link - - - - Cancel - Anuluj - - - - Add a new Link - Dodaj nowy Link - - - - Title: - Tytuł: - - - - Url: - Url: - - - - Add Anonymous Link - Dodaj Link Anonimowy - - - - +2 Great! - +2 Świetne! - - - - +1 Good - +1 Dobre - - - - 0 Okay - 0 W porządku - - - - -1 Sux - -1 Ssie - - - - -2 Bad Link - -2 Zły Link - - - - Add Link to Cloud - Dodaj Link do Chmury - - - - New Link - Nowy Link - - - - Add Link Failure - - - - - Missing Link and/or Title - Brakujący Link i/lub Tytuł - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - - - - - LinksCloud - - - - - LinksDialog - - - Title / Comment - - - - - Score - - - - - Peer / Link - Peer / Link - - - - Sort by - Sortuj według - - - - Combo - - - - - Time - Czas - - - - Ranking - Ranking - - - - In last - W ostatnim - - - - Month - Miesiącu - - - - Week - Tygodniu - - - - Day - Dniu - - - - From - Od - - - - All Peers - - - - - Own Links - Własne Linki - - - - Show - Pokaż - - - - Top 100 - Top 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Ostatnie 100 - - - - Link: - Link: - - - - Add Anonymous Link - Dodaj Link Anonimowy - - - - Add Link/Comment - Dodaj Link/komentarz - - - - Title: - Tytuł: - - - - Score: - - - - - - +2 Great! - +2 Świetne! - - - - - +1 Good - +1 Dobre - - - - - 0 Okay - 0 W porządku - - - - - -1 Sux - -1 Ssie - - - - - -2 Bad Link - -2 Zły Link - - - - Url: - Url: - - - - Links Cloud - - - - - Add new link - Dodaj nowy link - - - - Share Link Anonymously - Udostępnij Link Anonimowo - - - - Vote on Link - Głosuj na Link - - - - Download - Pobierz - - - - - - Add Link Failure - - - - - Missing Link and/or Title - Brakujący Link i/lub Tytuł - - - - Missing Link Data - - - - - Missing Comment - Brakujący Komentarz - - - - Link Title Not Changed - - - - - Do you want to continue? - Czy chcesz kontynuować? - - - - Expand - Rozwiń - - - - Hide - Ukryj - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_ru.qm b/plugins/LinksCloud/lang/LinksCloud_ru.qm deleted file mode 100644 index f3b0a7d71..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_ru.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_ru.ts b/plugins/LinksCloud/lang/LinksCloud_ru.ts deleted file mode 100644 index 1193c8ade..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_ru.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - - - - - Cancel - Отмена - - - - Add a new Link - - - - - Title: - Заголовок: - - - - Url: - - - - - Add Anonymous Link - - - - - +2 Great! - - - - - +1 Good - - - - - 0 Okay - - - - - -1 Sux - - - - - -2 Bad Link - - - - - Add Link to Cloud - - - - - New Link - - - - - Add Link Failure - - - - - Missing Link and/or Title - - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - - - - - LinksCloud - - - - - LinksDialog - - - Title / Comment - Название / комментарий - - - - Score - - - - - Peer / Link - - - - - Sort by - Сортировать по - - - - Combo - - - - - Time - - - - - Ranking - - - - - In last - - - - - Month - - - - - Week - - - - - Day - - - - - From - От - - - - All Peers - - - - - Own Links - - - - - Show - Показать - - - - Top 100 - - - - - 101-200 - - - - - 201-300 - - - - - 301-400 - - - - - 401-500 - - - - - Bottom 100 - - - - - Link: - - - - - Add Anonymous Link - - - - - Add Link/Comment - - - - - Title: - Заголовок: - - - - Score: - - - - - - +2 Great! - - - - - - +1 Good - - - - - - 0 Okay - - - - - - -1 Sux - - - - - - -2 Bad Link - - - - - Url: - - - - - Links Cloud - - - - - Add new link - - - - - Share Link Anonymously - - - - - Vote on Link - - - - - Download - Скачать - - - - - - Add Link Failure - - - - - Missing Link and/or Title - - - - - Missing Link Data - - - - - Missing Comment - - - - - Link Title Not Changed - - - - - Do you want to continue? - - - - - Expand - Раскрыть - - - - Hide - Скрыть - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_sv.qm b/plugins/LinksCloud/lang/LinksCloud_sv.qm deleted file mode 100644 index cf26cabdc..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_sv.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_sv.ts b/plugins/LinksCloud/lang/LinksCloud_sv.ts deleted file mode 100644 index deccb0a68..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_sv.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Lägg till länk - - - - Cancel - Avbryt - - - - Add a new Link - Lägg till ny länk - - - - Title: - Titel: - - - - Url: - URL: - - - - Add Anonymous Link - Lägg till länk anonymt - - - - +2 Great! - +2 Toppen! - - - - +1 Good - +1 Bra - - - - 0 Okay - 0 Okay - - - - -1 Sux - -1 Suger - - - - -2 Bad Link - -2 Dålig länk - - - - Add Link to Cloud - Lägg till länk i molnet - - - - New Link - Ny länk - - - - Add Link Failure - Kunde inte lägga till länk - - - - Missing Link and/or Title - Länk och/eller titel saknas - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Det här tilläggsprogrammet tillför en uppsättning cachade länkar, och ett poängsystem för att klassificera dem. - - - - LinksCloud - LänkMoln - - - - LinksDialog - - - Title / Comment - Titel / Kommentar - - - - Score - Poäng - - - - Peer / Link - Användare / Länk - - - - Sort by - Sortera enligt - - - - Combo - Kombo - - - - Time - Tid - - - - Ranking - Ranking - - - - In last - Sist in - - - - Month - Månad - - - - Week - Vecka - - - - Day - Dag - - - - From - Från - - - - All Peers - Alla användare - - - - Own Links - Egna länkar - - - - Show - Visa - - - - Top 100 - Topp 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - 100 från botten - - - - Link: - Länk: - - - - Add Anonymous Link - Lägg till länk anonymt - - - - Add Link/Comment - Lägg till länk/kommentar - - - - Title: - Titel: - - - - Score: - Poäng: - - - - - +2 Great! - +2 Toppen! - - - - - +1 Good - +1 Bra - - - - - 0 Okay - 0 Okay - - - - - -1 Sux - -1 Suger - - - - - -2 Bad Link - -2 Dålig länk - - - - Url: - URL: - - - - Links Cloud - Länkmoln - - - - Add new link - Lägg till ny länk - - - - Share Link Anonymously - Dela länk anonymt - - - - Vote on Link - Rösta på länk - - - - Download - Ladda ner - - - - - - Add Link Failure - Kunde inte lägga till länk - - - - Missing Link and/or Title - Länk och/eller titel saknas - - - - Missing Link Data - Länkdata saknas - - - - Missing Comment - Kommentar saknas - - - - Link Title Not Changed - Länktitel ej ändrad - - - - Do you want to continue? - Vill du fortsätta? - - - - Expand - Visa - - - - Hide - Dölj - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_tr.qm b/plugins/LinksCloud/lang/LinksCloud_tr.qm deleted file mode 100644 index 1d221ac5e..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_tr.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_tr.ts b/plugins/LinksCloud/lang/LinksCloud_tr.ts deleted file mode 100644 index 7f4d4b7aa..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_tr.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - Bağlantı Ekleyin - - - - Cancel - İptal - - - - Add a new Link - Yeni bir bağlantı ekleyin - - - - Title: - Başlık: - - - - Url: - İnternet adresi: - - - - Add Anonymous Link - Anonim Bağlantı Ekleyin - - - - +2 Great! - +2 Harika! - - - - +1 Good - +1 İyi - - - - 0 Okay - 0 İdare eder - - - - -1 Sux - -1 Yaramaz - - - - -2 Bad Link - -2 Kötü bağlantı - - - - Add Link to Cloud - Bağlantıyı Buluta Ekleyin - - - - New Link - Bağlantı Ekleyin - - - - Add Link Failure - Bağlantı Eklenemedi - - - - Missing Link and/or Title - Eksik Bağlantı ya da Başlık - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - Bu uyumlu ek, ön belleğe alınmış bağlantıları görüntüler ve oylanmasını sağlar. - - - - LinksCloud - BağlantıBulutu - - - - LinksDialog - - - Title / Comment - Başlık / Yorum - - - - Score - Not - - - - Peer / Link - Bağlantı - - - - Sort by - Sıralama - - - - Combo - Bir Arada - - - - Time - Zaman - - - - Ranking - Derece - - - - In last - Son - - - - Month - Ay - - - - Week - Hafta - - - - Day - Gün - - - - From - Kimden - - - - All Peers - Tüm Bağlantılar - - - - Own Links - Kendi Bağlantılarınız - - - - Show - Görüntüleyin - - - - Top 100 - Üst 100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - Alt 100 - - - - Link: - Bağlantı: - - - - Add Anonymous Link - Anonim Bağlantı Ekleyin - - - - Add Link/Comment - Bağlantı/Yorum Ekleyin - - - - Title: - Başlık: - - - - Score: - Not: - - - - - +2 Great! - +2 Harika! - - - - - +1 Good - +1 İyi - - - - - 0 Okay - 0 İdare eder - - - - - -1 Sux - -1 Yaramaz - - - - - -2 Bad Link - -2 Kötü Bağlantı - - - - Url: - İnternet Adresi: - - - - Links Cloud - Bağlantı Bulutu - - - - Add new link - Bağlantı ekleyin - - - - Share Link Anonymously - Bağlantıyı Anonim Olarak Paylaşın - - - - Vote on Link - Bağlantıyı Oylayın - - - - Download - İndirin - - - - - - Add Link Failure - Bağlantı Eklenemedi - - - - Missing Link and/or Title - Eksik Bağlantı ya da Başlık - - - - Missing Link Data - Eksik Bağlantı Verisi - - - - Missing Comment - Eksik Yorum - - - - Link Title Not Changed - Bağlantı Başlığı Değişmedi - - - - Do you want to continue? - Devam etmek istiyor musunuz? - - - - Expand - Genişletin - - - - Hide - Gizleyin - - - \ No newline at end of file diff --git a/plugins/LinksCloud/lang/LinksCloud_zh_CN.qm b/plugins/LinksCloud/lang/LinksCloud_zh_CN.qm deleted file mode 100644 index a0b21b5c1..000000000 Binary files a/plugins/LinksCloud/lang/LinksCloud_zh_CN.qm and /dev/null differ diff --git a/plugins/LinksCloud/lang/LinksCloud_zh_CN.ts b/plugins/LinksCloud/lang/LinksCloud_zh_CN.ts deleted file mode 100644 index 32d9d80e1..000000000 --- a/plugins/LinksCloud/lang/LinksCloud_zh_CN.ts +++ /dev/null @@ -1,329 +0,0 @@ - - - AddLinksDialog - - - - Add Link - 添加链接 - - - - Cancel - 取消 - - - - Add a new Link - 添加一个新的链接 - - - - Title: - 标题: - - - - Url: - 网址: - - - - Add Anonymous Link - 添加匿名链接 - - - - +2 Great! - +2 真棒! - - - - +1 Good - +1 不错 - - - - 0 Okay - 0 还行 - - - - -1 Sux - -1 差 - - - - -2 Bad Link - -2 很差 - - - - Add Link to Cloud - 添加链接到云端 - - - - New Link - 新链接 - - - - Add Link Failure - 添加链接失败 - - - - Missing Link and/or Title - 丢失链接和(或)标题 - - - - LinksCloudPlugin - - - This plugin provides a set of cached links, and a voting system to promote them. - 这个插件提供一些缓存链接,和一个给这些链接评分的投票系统。 - - - - LinksCloud - LinksCloud - - - - LinksDialog - - - Title / Comment - 标题/评论 - - - - Score - 得分 - - - - Peer / Link - 节点 / 链接 - - - - Sort by - 排序方式 - - - - Combo - 综合 - - - - Time - 时间 - - - - Ranking - 排行 - - - - In last - 前一 - - - - Month - 个月 - - - - Week - - - - - Day - - - - - From - 来自 - - - - All Peers - 所有节点 - - - - Own Links - 自己的链接 - - - - Show - 显示 - - - - Top 100 - 前100 - - - - 101-200 - 101-200 - - - - 201-300 - 201-300 - - - - 301-400 - 301-400 - - - - 401-500 - 401-500 - - - - Bottom 100 - 后100 - - - - Link: - 链接: - - - - Add Anonymous Link - 添加匿名链接 - - - - Add Link/Comment - 添加链接/评论 - - - - Title: - 标题: - - - - Score: - 得分: - - - - - +2 Great! - +2 真棒! - - - - - +1 Good - +1 不错 - - - - - 0 Okay - 0 还行 - - - - - -1 Sux - -1 烂 - - - - - -2 Bad Link - -2 很差 - - - - Url: - 网址: - - - - Links Cloud - Links Cloud - - - - Add new link - 添加新链接 - - - - Share Link Anonymously - 匿名分享链接 - - - - Vote on Link - 为链接投票 - - - - Download - 下载 - - - - - - Add Link Failure - 添加链接失败 - - - - Missing Link and/or Title - 丢失链接和(或)标题 - - - - Missing Link Data - 丢失链接信息 - - - - Missing Comment - 丢失评论 - - - - Link Title Not Changed - 链接名未改变 - - - - Do you want to continue? - 想要继续? - - - - Expand - 展开 - - - - Hide - 隐藏 - - - \ No newline at end of file diff --git a/plugins/LinksCloud/p3ranking.cc b/plugins/LinksCloud/p3ranking.cc deleted file mode 100644 index 2fb72b7a3..000000000 --- a/plugins/LinksCloud/p3ranking.cc +++ /dev/null @@ -1,1350 +0,0 @@ -/* - * libretroshare/src/services p3ranking.cc - * - * 3P/PQI network interface for RetroShare. - * - * Copyright 2007-2008 by Robert Fernie. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License Version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - * Please report all bugs and problems to "retroshare@lunamutt.com". - * - */ - -#include "rsrankitems.h" -#include "p3ranking.h" -#include -#include - -#include "pqi/p3linkmgr.h" -#include "pqi/pqibin.h" -#include "pqi/authssl.h" -#include "pqi/pqistore.h" - -RsRanks *rsRanks = NULL ; - -const uint32_t RANK_MAX_FWD_OFFSET = (60 * 60 * 24 * 2); /* 2 Days */ -const uint32_t RANK_STORE_PERIOD = (60 * 60 * 24 * 30 * 6); /* 6 months */ - -const uint32_t FRIEND_RANK_REPUBLISH_PERIOD = 60; /* every minute for testing */ -//const uint32_t FRIEND_RANK_REPUBLISH_PERIOD = 1800; /* every 30 minutes */ - -std::string generateRandomLinkId(); - -/***** - * TODO - * (1) Streaming. - * (2) Ranking. - * - */ - -/********* - * #define RANK_DEBUG 1 - *********/ -#define RANK_DEBUG 1 - -p3Ranking::p3Ranking(RsPluginHandler* pgHandler) - : RsCacheService(RS_SERVICE_TYPE_RANK,CONFIG_TYPE_RANK_LINK,5, pgHandler), - mRepublish(false), mRepublishFriends(false), mRepublishFriendTS(0), mStorePeriod(RANK_STORE_PERIOD), mUpdated(true),mRankMtx(std::string("p3Ranking")) -{ - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - mOwnId = pgHandler->getLinkMgr()->getOwnId(); - mViewPeriod = 60 * 60 * 24 * 30; /* one Month */ - mSortType = RS_RANK_ALG; -} - -bool p3Ranking::loadLocalCache(const RsCacheData &data) -{ - std::string filename = data.path + '/' + data.name; - std::string hash = data.hash; - //uint64_t size = data.size; - std::string source = data.pid; - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::loadLocalCache()"; - std::cerr << std::endl; - std::cerr << "\tSource: " << source; - std::cerr << std::endl; - std::cerr << "\tFilename: " << filename; - std::cerr << std::endl; - std::cerr << "\tHash: " << hash; - std::cerr << std::endl; - std::cerr << "\tSize: " << data.size; - std::cerr << std::endl; -#endif - - loadRankFile(filename, source); - - { - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - mRepublish = false; - } - - if (data.size > 0) /* don't refresh zero sized caches */ - { - refreshCache(data); - } - return true; -} - -int p3Ranking::loadCache(const RsCacheData &data) -{ - std::string filename = data.path + '/' + data.name; - std::string hash = data.hash; - //uint64_t size = data.size; - std::string source = data.pid; - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::loadCache()"; - std::cerr << std::endl; - std::cerr << "\tSource: " << source; - std::cerr << std::endl; - std::cerr << "\tFilename: " << filename; - std::cerr << std::endl; - std::cerr << "\tHash: " << hash; - std::cerr << std::endl; - std::cerr << "\tSize: " << data.size; - std::cerr << std::endl; -#endif - - loadRankFile(filename, source); - - - CacheStore::lockData(); /***** LOCK ****/ - locked_storeCacheEntry(data); - CacheStore::unlockData(); /***** UNLOCK ****/ - - return 1; -} - - -void p3Ranking::loadRankFile(std::string filename, std::string src) -{ - /* create the serialiser to load info */ - RsSerialiser *rsSerialiser = new RsSerialiser(); - rsSerialiser->addSerialType(new RsRankSerialiser()); - - uint32_t bioflags = BIN_FLAGS_HASH_DATA | BIN_FLAGS_READABLE; - BinInterface *bio = new BinFileInterface(filename.c_str(), bioflags); - pqistore *store = new pqistore(rsSerialiser, src, bio, BIN_FLAGS_READABLE); - - time_t now = time(NULL); - time_t min, max; - - { RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - min = now - mStorePeriod; - max = now + RANK_MAX_FWD_OFFSET; - - } /********** STACK LOCKED MTX ******/ - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::loadRankFile()"; - std::cerr << std::endl; - std::cerr << "\tSource: " << src; - std::cerr << std::endl; - std::cerr << "\tFilename: " << filename; - std::cerr << std::endl; -#endif - - RsItem *item; - RsRankLinkMsg *newMsg; - - while(NULL != (item = store->GetItem())) - { - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::loadRankFile() Got Item:"; - std::cerr << std::endl; - item->print(std::cerr, 10); - std::cerr << std::endl; -#endif - - if (NULL == (newMsg = dynamic_cast(item))) - { -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::loadRankFile() Item not LinkMsg (deleting):"; - std::cerr << std::endl; -#endif - - delete item; - } - /* check timestamp */ - else if (((time_t) newMsg->timestamp < min) || - ((time_t) newMsg->timestamp > max)) - { -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::loadRankFile() Outside TimeRange (deleting):"; - std::cerr << std::endl; -#endif - /* if outside range -> remove */ - delete newMsg; - } - else - { -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::loadRankFile() Loading Item"; - std::cerr << std::endl; -#endif - /* correct the source (if is a message from a friend) */ - newMsg->PeerId(newMsg->pid); - addRankMsg(newMsg); - } - } - - delete store; -} - - -void p3Ranking::publishMsgs(bool own) -{ - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::publishMsgs()"; - std::cerr << std::endl; -#endif - - std::string path = CacheSource::getCacheDir(); - uint16_t subid; - - - /* setup name / etc based on whether we're - * publishing own or friends... - */ - - /* determine filename */ - std::string tmpname; - if (own) - { - /* setup to publish own messages */ - rs_sprintf(tmpname, "rank-links-%ld.rsrl", time(NULL)); - subid = 1; - } - else - { - /* setup to publish friend messages */ - rs_sprintf(tmpname, "rank-friend-links-%ld.rsrl", time(NULL)); - subid = 2; - } - - std::string fname = path + "/" + tmpname; - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::publishMsgs() Storing to: " << fname; - std::cerr << std::endl; -#endif - - RsSerialiser *rsSerialiser = new RsSerialiser(); - rsSerialiser->addSerialType(new RsRankSerialiser()); - - uint32_t bioflags = BIN_FLAGS_HASH_DATA | BIN_FLAGS_WRITEABLE; - BinInterface *bio = new BinFileInterface(fname.c_str(), bioflags); - pqistore *store = new pqistore(rsSerialiser, mOwnId, bio, BIN_FLAGS_NO_DELETE | BIN_FLAGS_WRITEABLE); - - { RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - /* iterate through list */ - std::map::iterator it; - std::map::iterator cit; - - for(it = mData.begin(); it != mData.end(); it++) - { - if (own) - { - if (it->second.ownTag) - { - /* write to serialiser */ - RsItem *item = it->second.comments[mOwnId]; - if (item) - { - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::publishMsgs() Storing Item:"; - std::cerr << std::endl; - item->print(std::cerr, 10); - std::cerr << std::endl; -#endif - store->SendItem(item); - } - } - else - { -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::publishMsgs() Skipping Foreign item"; - std::cerr << std::endl; -#endif - } - } - else - { - /* if we have pushed it out already - don't bother */ - if (it->second.ownTag) - { -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::publishMsgs() (Friends) Skipping Own Item"; - std::cerr << std::endl; -#endif - continue; - } - - /* if we have some comments ... then a friend has recommended it - * serialise a sanitized version. - */ - if (it->second.comments.size() > 0) - { - RsRankLinkMsg *origmsg = (it->second.comments.begin())->second; - RsRankLinkMsg *msg = new RsRankLinkMsg(); - - /* copy anon data */ - -/*************************************************************************/ -/****************************** LINK SPECIFIC ****************************/ -/*************************************************************************/ - msg->clear(); - msg->PeerId(""); - msg->pid = ""; /* Anon */ - msg->rid = origmsg->rid; - msg->link = origmsg->link; - msg->title = origmsg->title; - msg->timestamp = origmsg->timestamp; - msg->score = 0; - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::publishMsgs() (Friends) Storing (Anon) Item:"; - std::cerr << std::endl; - msg->print(std::cerr, 10); - std::cerr << std::endl; -#endif - store->SendItem(msg); - - /* cleanup */ - delete msg; - } - } - } - - - /* now we also add our anon messages to the friends list */ - if (!own) - { - std::list::iterator ait; - for(ait=mAnon.begin(); ait != mAnon.end(); ait++) - { -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::publishMsgs() (Friends) Adding Own Anon Item:"; - std::cerr << std::endl; - (*ait)->print(std::cerr, 10); - std::cerr << std::endl; -#endif - store->SendItem(*ait); - } - } - - } /********** STACK LOCKED MTX ******/ - - /* flag as new info */ - RsCacheData data; - - { RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - data.pid = mOwnId; - } /********** STACK LOCKED MTX ******/ - - data.cid = CacheId(CacheSource::getCacheType(), subid); - - data.path = path; - data.name = tmpname; - - data.hash = bio->gethash(); - data.size = bio->bytecount(); - data.recvd = time(NULL); - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::publishMsgs() refreshing Cache"; - std::cerr << std::endl; - std::cerr << "\tCache Path: " << data.path; - std::cerr << std::endl; - std::cerr << "\tCache Name: " << data.name; - std::cerr << std::endl; - std::cerr << "\tCache Hash: " << data.hash; - std::cerr << std::endl; - std::cerr << "\tCache Size: " << data.size; - std::cerr << std::endl; -#endif - if (data.size > 0) /* don't refresh zero sized caches */ - { - refreshCache(data); - } - - delete store; -} - - - -void p3Ranking::addRankMsg(RsRankLinkMsg *msg) -{ - /* find msg */ - std::string id = msg->PeerId(); - std::string rid = msg->rid; - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::addRankMsg() Item:"; - std::cerr << std::endl; - msg->print(std::cerr, 10); - std::cerr << std::endl; -#endif - - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - std::map::iterator it; - it = mData.find(rid); - if (it == mData.end()) - { - /* add a new one */ - RankGroup grp; - grp.rid = rid; - grp.ownTag = false; - grp.rank = 0.0f; - -/*************************************************************************/ -/****************************** LINK SPECIFIC ****************************/ -/*************************************************************************/ - - grp.link = msg->link; - grp.title = msg->title; - -/*************************************************************************/ -/****************************** LINK SPECIFIC ****************************/ -/*************************************************************************/ - - mData[rid] = grp; - it = mData.find(rid); - - if (id == "") - { -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::addRankMsg() New Anon Link: mUpdated = true"; - std::cerr << std::endl; -#endif - locked_reSortGroup(it->second); - mUpdated = true; - } - } - - /**** If it is an anonymous Link (ie Friend of a Friend) Drop out now ***/ - if (id == "") - { - return; - } - - /* check for old comment */ - std::map::iterator cit; - cit = (it->second).comments.find(id); - - /* Check that it is different! */ - bool newComment = false; - if ((it->second).comments.end() == cit) - { - newComment = true; - } - else - { - RsRankLinkMsg *old = cit->second; - if ((msg->timestamp != old->timestamp) || - (msg->comment != old->comment)) - { - newComment = true; - } - } - - if (newComment) - { -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::addRankMsg() New Comment"; - std::cerr << std::endl; -#endif - /* clean up old */ - if ((it->second).comments.end() != cit) - { - delete (cit->second); - (it->second).comments.erase(cit); - } - - /* add in */ - (it->second).comments[id] = msg; - - /* republish? */ - if (id == mOwnId) - { - it->second.ownTag = true; - mRepublish = true; -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::addRankMsg() Own Comment: mRepublish = true"; - std::cerr << std::endl; -#endif - } - else - { - mRepublishFriends = true; -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::addRankMsg() Other Comment: mRepublishFriends = true"; - std::cerr << "p3Ranking::addRankMsg() Old Comment ignoring"; - std::cerr << std::endl; -#endif - } - - locked_reSortGroup(it->second); - - mUpdated = true; - } - else - { - delete msg; -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::addRankMsg() Old Comment ignoring"; - std::cerr << std::endl; -#endif - } -} - - -/***************** Sorting ****************/ - -bool p3Ranking::setSortPeriod(uint32_t period) -{ - bool reSort = false; - - { - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - reSort = (mViewPeriod != period); - mViewPeriod = period; - } - - - if (reSort) - { - sortAllMsgs(); - } - - return true; -} - -bool p3Ranking::setSortMethod(uint32_t type) -{ - bool reSort = false; - - { - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - reSort = (mSortType != type); - mSortType = type; - } - - if (reSort) - { - sortAllMsgs(); - } - - return true; -} - -bool p3Ranking::clearPeerFilter() -{ - bool reSort = false; - - { - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - reSort = (mPeerFilter.size() > 0); - mPeerFilter.clear(); - } - - - if (reSort) - { - sortAllMsgs(); - } - - return true; -} - -bool p3Ranking::setPeerFilter(std::list peers) -{ - { - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - mPeerFilter = peers; - } - - sortAllMsgs(); - - return true; -} - -float p3Ranking::locked_calcRank(RankGroup &grp) -{ - /* Ranking Calculations ..... - */ - - time_t now = time(NULL); - time_t minTime = now-mViewPeriod; - bool doFilter = (mPeerFilter.size() > 0); - bool doScore = (mSortType & RS_RANK_SCORE); - bool doTime = (mSortType & RS_RANK_TIME); - - uint32_t count = 0; - float algScore = 0; - float comboScore = 0; - float popScore = 0; - -#ifdef RANK_DEBUG - std::string normlink(grp.link.begin(), grp.link.end()); - std::cerr << "p3Ranking::locked_calcRank() for: " << normlink; - std::cerr << std::endl; - std::cerr << "Period: " << mViewPeriod; - std::cerr << " doFilter: " << doFilter; - std::cerr << " doScore: " << doScore; - std::cerr << " doTime: " << doTime; - std::cerr << std::endl; -#endif - - std::map::iterator it; - for(it = grp.comments.begin(); it != grp.comments.end(); it++) - { -#ifdef RANK_DEBUG - std::cerr << "Comment by:" << it->first << " age: " << now - it->second->timestamp; - std::cerr << std::endl; -#endif - if (doFilter) - { - if (mPeerFilter.end() == - std::find(mPeerFilter.begin(), mPeerFilter.end(), it->first)) - { - continue; /* skip it */ -#ifdef RANK_DEBUG - std::cerr << "\tFiltered Out"; - std::cerr << std::endl; -#endif - - } - } - - /* if Scoring is involved... drop old ones */ - if ((doScore) && ((time_t) it->second->timestamp < minTime)) - { -#ifdef RANK_DEBUG - std::cerr << "\tToo Old"; - std::cerr << std::endl; -#endif - continue; - } - - time_t deltaT; - if ((time_t) it->second->timestamp > now) - { - deltaT = it->second->timestamp - now; - } - else - { - deltaT = now - it->second->timestamp; - } - float timeScore = ((float) mViewPeriod - deltaT) / (mViewPeriod + 0.01); - -#ifdef RANK_DEBUG - std::cerr << "\tTimeScore: " << timeScore; - std::cerr << std::endl; -#endif - - /* algScore is sum of (filtered) timeScores */ - /* timeScore is average of (all) timeScores */ - /* popScore is just count of valid scores */ - - algScore += timeScore; - count++; - - /* for more advanced scoring (where each peer gives a score +2 -> -2) */ - /* combo = SUM value * timeScore */ - /* time = same as before (average) */ - /* popScore = SUM value */ - - float value = it->second->score; - comboScore += value * timeScore; - popScore += value; - } - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::locked_calcRank() algScore: " << algScore; - std::cerr << " Count: " << count; - std::cerr << std::endl; -#endif - - if ((count <= 0) || (algScore <= 0)) - { -#ifdef RANK_DEBUG - std::cerr << "Final score: 0"; - std::cerr << std::endl; -#endif - return 0; - } - - if ((doScore) && (doTime)) - { -#ifdef RANK_DEBUG - std::cerr << "Old (alg) score:" << algScore; - std::cerr << std::endl; - std::cerr << "Final (Combo) score:" << comboScore; - std::cerr << std::endl; -#endif - - if (comboScore < 0) - { -#ifdef RANK_DEBUG - std::cerr << "Combo score reset = 0"; - std::cerr << std::endl; -#endif - comboScore = 0; - } - return comboScore; - - } - else if (doScore) - { -#ifdef RANK_DEBUG - std::cerr << "Old (tally) score:" << count; - std::cerr << std::endl; - std::cerr << "Final (pop) score:" << popScore; - std::cerr << std::endl; -#endif - if (popScore < 0) - { -#ifdef RANK_DEBUG - std::cerr << "Pop score reset = 0"; - std::cerr << std::endl; -#endif - popScore = 0; - } - return popScore; - } - else if (doTime) - { -#ifdef RANK_DEBUG - std::cerr << "Final (time) score:" << algScore / count; - std::cerr << std::endl; -#endif - return algScore / count; - } - return 0; -} - - -void p3Ranking::locked_reSortGroup(RankGroup &grp) -{ - std::string rid = grp.rid; - - /* remove from existings rankings */ - std::multimap::iterator rit; - rit = mRankings.lower_bound(grp.rank); - for(; (rit != mRankings.end()) && (rit->first == grp.rank); rit++) - { - if (rit->second == rid) - { - mRankings.erase(rit); - break; - } - } - - /* add it back in */ - grp.rank = locked_calcRank(grp); - mRankings.insert( - std::pair(grp.rank, rid)); -} - -void p3Ranking::sortAllMsgs() -{ - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - /* iterate through list and re-score each one */ - std::map::iterator it; - - mRankings.clear(); - - for(it = mData.begin(); it != mData.end(); it++) - { - (it->second).rank = locked_calcRank(it->second); - if (it->second.rank < 0) - { - it->second.rank = 0; - } - - mRankings.insert( - std::pair - (it->second.rank, it->first)); - } -} - -/******** ACCESS *************/ - - /* get Ids */ -uint32_t p3Ranking::getRankingsCount() -{ - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - return mRankings.size(); -} - -float p3Ranking::getMaxRank() -{ - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - if (mRankings.size() == 0) - return 0; - - return mRankings.rbegin()->first; -} - -bool p3Ranking::getRankings(uint32_t first, uint32_t count, std::list &rids) -{ - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::getRankings() First: " << first << " Count: " << count; - std::cerr << std::endl; -#endif - - uint32_t i = 0; - std::multimap::reverse_iterator rit; - for(rit = mRankings.rbegin(); (i < first) && (rit != mRankings.rend()); rit++, i++); - - i = 0; - for(; (i < count) && (rit != mRankings.rend()); rit++, i++) - { - rids.push_back(rit->second); - } - return true; -} - - -bool p3Ranking::getRankDetails(std::string rid, RsRankDetails &details) -{ - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - /* get the details. */ - - std::map::iterator it; - it = mData.find(rid); - if (mData.end() == it) - { - return false; - } - -/*************************************************************************/ -/****************************** LINK SPECIFIC ****************************/ -/*************************************************************************/ - - details.rid = it->first; - details.link = (it->second).link; - details.title = (it->second).title; - details.rank = (it->second).rank; - details.ownTag = (it->second).ownTag; - -/*************************************************************************/ -/****************************** LINK SPECIFIC ****************************/ -/*************************************************************************/ - - std::map::iterator cit; - for(cit = (it->second).comments.begin(); - cit != (it->second).comments.end(); cit++) - { - RsRankComment comm; - comm.id = (cit->second)->PeerId(); - comm.timestamp = (cit->second)->timestamp; - comm.comment = (cit->second)->comment; - comm.score = (cit->second)->score; - - details.comments.push_back(comm); - } - - return true; -} - - -void p3Ranking::tick() -{ - bool repub = false; - bool repubFriends = false; - - { - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - repub = mRepublish; - repubFriends = mRepublishFriends && (time(NULL) > mRepublishFriendTS); - } - - if (repub) - { - publishMsgs(true); - - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - mRepublish = false; - } - - - if (repubFriends) - { - publishMsgs(false); - - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - mRepublishFriends = false; - mRepublishFriendTS = time(NULL) + FRIEND_RANK_REPUBLISH_PERIOD; - } - - -} - -bool p3Ranking::updated() -{ - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - if (mUpdated) - { - mUpdated = false; - return true; - } - return false; -} - -/***** NEW CONTENT *****/ -/*************************************************************************/ -/****************************** LINK SPECIFIC ****************************/ -/*************************************************************************/ -std::string p3Ranking::newRankMsg(std::wstring link, std::wstring title, std::wstring comment, int32_t score) -{ - /* generate an id */ - std::string rid = generateRandomLinkId(); - - RsRankLinkMsg *msg = new RsRankLinkMsg(); - - time_t now = time(NULL); - - { - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - msg->PeerId(mOwnId); - msg->pid = mOwnId; - } - - msg->rid = rid; - msg->title = title; - msg->timestamp = now; - msg->comment = comment; - msg->score = score; - - msg->linktype = RS_LINK_TYPE_WEB; - msg->link = link; - - - addRankMsg(msg); - - return rid; -} - - -/*************************************************************************/ -/****************************** LINK SPECIFIC ****************************/ -/*************************************************************************/ -bool p3Ranking::updateComment(std::string rid, std::wstring comment, int32_t score) -{ - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::updateComment() rid:" << rid; - std::cerr << std::endl; -#endif - RsRankLinkMsg *msg = NULL; - - { RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - std::map::iterator it; - it = mData.find(rid); - if (it == mData.end()) - { - /* missing group -> fail */ - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::updateComment() Failed - noData"; - std::cerr << std::endl; -#endif - return false; - } - - msg = new RsRankLinkMsg(); - - time_t now = time(NULL); - - msg->PeerId(mOwnId); - msg->pid = mOwnId; - msg->rid = rid; - msg->timestamp = now; - msg->title = (it->second).title; - msg->comment = comment; - msg->score = score; - - msg->linktype = RS_LINK_TYPE_WEB; - msg->link = (it->second).link; - - } /********** STACK UNLOCKED MTX ******/ - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::updateComment() Item:"; - std::cerr << std::endl; - msg->print(std::cerr, 10); - std::cerr << std::endl; -#endif - - addRankMsg(msg); - return true; -} - -/*************************************************************************/ -/****************************** LINK SPECIFIC ****************************/ -/*************************************************************************/ -std::string p3Ranking::anonRankMsg(std::string rid, std::wstring link, std::wstring title) -{ - bool alreadyExists = true; - - if (rid == "") - { - alreadyExists = false; - /* generate an id */ - rid = generateRandomLinkId(); - } - - RsRankLinkMsg *msg1 = new RsRankLinkMsg(); - RsRankLinkMsg *msg2 = new RsRankLinkMsg(); - - time_t now = time(NULL); - - { - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - msg1->PeerId(""); - msg1->pid = ""; - - msg2->PeerId(""); - msg2->pid = ""; - } - - msg1->rid = rid; - msg1->title = title; - msg1->timestamp = now; - msg1->comment.clear(); - msg1->score = 0; - - msg1->linktype = RS_LINK_TYPE_WEB; - msg1->link = link; - - msg2->rid = rid; - msg2->title = title; - msg2->timestamp = now; - msg2->comment.clear(); - msg2->score = 0; - - msg2->linktype = RS_LINK_TYPE_WEB; - msg2->link = link; - - if (alreadyExists) - { - delete msg1; - } - else - { - addRankMsg(msg1); - } - - addAnonToList(msg2); - - return rid; -} - - - -pqistore *createStore(std::string file, std::string src, bool reading) -{ - - RsSerialiser *rsSerialiser = new RsSerialiser(); - rsSerialiser->addSerialType(new RsRankSerialiser()); - - uint32_t bioflags = BIN_FLAGS_HASH_DATA; - if (reading) - { - bioflags |= BIN_FLAGS_READABLE; - } - else - { - bioflags |= BIN_FLAGS_WRITEABLE; - } - - /* bin flags: READ | WRITE | HASH_DATA */ - BinInterface *bio = new BinFileInterface(file.c_str(), bioflags); - /* store flags: NO_DELETE (yes) | NO_CLOSE (no) */ - pqistore *store = new pqistore(rsSerialiser, src, bio, BIN_FLAGS_NO_DELETE | (bioflags & BIN_FLAGS_WRITEABLE)); - - return store; -} - -std::string generateRandomLinkId() -{ - std::string out; -/********************************** WINDOWS/UNIX SPECIFIC PART ******************/ -#ifndef WINDOWS_SYS - /* 4 bytes per random number: 4 x 4 = 16 bytes */ - for(int i = 0; i < 4; i++) - { - uint32_t rint = random(); - rs_sprintf_append(out, "%08x", rint); - } -#else - srand(time(NULL)); - /* 2 bytes per random number: 8 x 2 = 16 bytes */ - for(int i = 0; i < 8; i++) - { - uint16_t rint = rand(); /* only gives 16 bits */ - rs_sprintf_append(out, "%04x", rint); - } -#endif -/********************************** WINDOWS/UNIX SPECIFIC PART ******************/ - return out; -} - - -/*************************************************************************/ -/****************************** LINK SPECIFIC ****************************/ -/*************************************************************************/ -void p3Ranking::createDummyData() -{ - RsRankLinkMsg *msg = new RsRankLinkMsg(); - - time_t now = time(NULL); - - msg->PeerId(mOwnId); - msg->pid = mOwnId; - msg->rid = "0001"; - msg->title = L"Original Awesome Site!"; - msg->timestamp = now - 60 * 60 * 24 * 15; - msg->link = L"http://www.retroshare.org"; - msg->comment = L"Retroshares Website"; - msg->score = 1; - - addRankMsg(msg); - - msg = new RsRankLinkMsg(); - msg->PeerId(mOwnId); - msg->pid = mOwnId; - msg->rid = "0002"; - msg->title = L"Awesome Site!"; - msg->timestamp = now - 123; - msg->link = L"http://www.lunamutt.org"; - msg->comment = L"Lunamutt's Website"; - msg->score = 1; - - addRankMsg(msg); - - msg = new RsRankLinkMsg(); - msg->PeerId("ALTID"); - msg->pid = "ALTID"; - msg->rid = "0002"; - msg->title = L"Awesome Site!"; - msg->timestamp = now - 60 * 60 * 24 * 29; - msg->link = L"http://www.lunamutt.org"; - msg->comment = L"Lunamutt's Website (TWO) How Long can this comment be!\n"; - msg->comment += L"What happens to the second line?\n"; - msg->comment += L"And a 3rd!"; - msg->score = 1; - - addRankMsg(msg); - - msg = new RsRankLinkMsg(); - msg->PeerId("ALTID2"); - msg->pid = "ALTID2"; - msg->rid = "0002"; - msg->title = L"Awesome Site!"; - msg->timestamp = now - 60 * 60 * 7; - msg->link = L"http://www.lunamutt.org"; - msg->comment += L"A Short Comment"; - msg->score = 1; - - addRankMsg(msg); - - - /***** Third one ****/ - - msg = new RsRankLinkMsg(); - msg->PeerId(mOwnId); - msg->pid = mOwnId; - msg->rid = "0003"; - msg->title = L"Weird Site!"; - msg->timestamp = now - 60 * 60; - msg->link = L"http://www.lunamutt.com"; - msg->comment = L""; - msg->score = 1; - - addRankMsg(msg); - - msg = new RsRankLinkMsg(); - msg->PeerId("ALTID"); - msg->pid = "ALTID"; - msg->rid = "0003"; - msg->title = L"Weird Site!"; - msg->timestamp = now - 60 * 60 * 24 * 2; - msg->link = L"http://www.lunamutt.com"; - msg->comment = L""; - msg->score = 1; - - addRankMsg(msg); - -} - - -/***************************************************************************/ -/****************************** CONFIGURATION HANDLING *********************/ -/***************************************************************************/ - -/**** Store Anon Links: OVERLOADED FROM p3Config ****/ - -RsSerialiser *p3Ranking::setupSerialiser() -{ - RsSerialiser *rss = new RsSerialiser(); - - /* add in the types we need! */ - rss->addSerialType(new RsRankSerialiser()); - return rss; -} - -bool p3Ranking::addAnonToList(RsRankLinkMsg *msg) -{ - { - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - std::list::iterator it; - for(it = mAnon.begin(); it != mAnon.end(); it++) - { - if (msg->rid == (*it)->rid) - break; - } - - if (it != mAnon.end()) - { - delete msg; - return false; - } - - mAnon.push_back(msg); - mRepublishFriends = true; - } - - IndicateConfigChanged(); /**** INDICATE CONFIG CHANGED! *****/ - return true; -} - -bool p3Ranking::saveList(bool &cleanup, std::list & saveData) -{ - - mRankMtx.lock(); /*********************** LOCK *******/ - - cleanup = false; - - std::list::iterator it; - for(it = mAnon.begin(); it != mAnon.end(); it++) - { - saveData.push_back(*it); - } - - /* list completed! */ - return true; -} - -void p3Ranking::saveDone() -{ - mRankMtx.unlock(); /*********************** UNLOCK *******/ - return; -} - -bool p3Ranking::loadList(std::list& load) -{ - std::list::iterator it; - RsRankLinkMsg *msg; - -#ifdef SERVER_DEBUG - std::cerr << "p3Ranking::loadList() Item Count: " << load.size(); - std::cerr << std::endl; -#endif - - time_t now = time(NULL); - time_t min, max; - - { RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - - min = now - mStorePeriod; - max = now + RANK_MAX_FWD_OFFSET; - - } /********** STACK LOCKED MTX ******/ - - for(it = load.begin(); it != load.end(); it++) - { - /* switch on type */ - if (NULL != (msg = dynamic_cast(*it))) - { - /* check date -> if old expire */ - if (((time_t) msg->timestamp < min) || - ((time_t) msg->timestamp > max)) - { -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::loadList() Outside TimeRange (deleting Own Anon):"; - std::cerr << std::endl; -#endif - /* if outside range -> remove */ - delete msg; - continue; - } - -#ifdef RANK_DEBUG - std::cerr << "p3Ranking::loadList() Anon TimeRange ok"; - std::cerr << std::endl; -#endif - msg->PeerId(""); - msg->pid = ""; - - RsRankLinkMsg *msg2 = new RsRankLinkMsg(); - msg2->clear(); - msg2->PeerId(msg->PeerId()); - msg2->pid = msg->pid; - msg2->rid = msg->rid; - msg2->title = msg->title; - msg2->timestamp = msg->timestamp; - msg2->comment.clear(); - msg2->score = 0; - - msg2->linktype = msg->linktype; - msg2->link = msg->link; - - /* make a copy to add into standard map */ - addRankMsg(msg); - - RsStackMutex stack(mRankMtx); /********** STACK LOCKED MTX ******/ - mAnon.push_back(msg2); - } - else - { - /* cleanup */ - delete (*it); - } - } - - return true; - -} - diff --git a/plugins/LinksCloud/p3ranking.h b/plugins/LinksCloud/p3ranking.h deleted file mode 100644 index 13a5cdeac..000000000 --- a/plugins/LinksCloud/p3ranking.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - * libretroshare/src/services: p3ranking.h - * - * 3P/PQI network interface for RetroShare. - * - * Copyright 2007-2008 by Robert Fernie. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License Version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - * Please report all bugs and problems to "retroshare@lunamutt.com". - * - */ - -#ifndef P3_GENERIC_RANKING_HEADER -#define P3_GENERIC_RANKING_HEADER - -class pqistore ; - -#include "retroshare/rsplugin.h" -#include "plugins/rscacheservice.h" - -#include "rsrank.h" - -/* - * A Generic Ranking system. - * Each User provides one cache... - * - * can be overloaded for specific types - * (links, shares, photos etc) - * - * This is not generic yet!!! - */ - -class RsRankMsg; -class RsRankLinkMsg; - -const uint16_t RS_SERVICE_TYPE_RANK = 0x0002 ; -const uint32_t CONFIG_TYPE_RANK_LINK = 0x0011 ; - -class RankGroup -{ - public: - - std::string rid; /* Random Id */ - std::wstring link; - std::wstring title; - float rank; - bool ownTag; - std::map comments; -}; - -class p3Ranking: public RsCacheService, public RsRanks -{ - public: - - p3Ranking(RsPluginHandler* pgHandler) ; - - - /******************************* CACHE SOURCE / STORE Interface *********************/ - - /* overloaded functions from Cache Source */ - virtual bool loadLocalCache(const RsCacheData &data); - - /* overloaded functions from Cache Store */ - virtual int loadCache(const RsCacheData &data); - - /******************************* CACHE SOURCE / STORE Interface *********************/ - - public: - - /************* Extern Interface *******/ - - /* changed */ - virtual bool updated(); - - /* Set Sort Methods */ - virtual bool setSortPeriod(uint32_t period); - virtual bool setSortMethod(uint32_t type); - virtual bool clearPeerFilter(); - virtual bool setPeerFilter(std::list peers); - - /* get Ids */ - virtual uint32_t getRankingsCount(); - virtual float getMaxRank(); - virtual bool getRankings(uint32_t first, uint32_t count, std::list &rids); - virtual bool getRankDetails(std::string rid, RsRankDetails &details); - - /* Add New Comment / Msg */ - virtual std::string newRankMsg(std::wstring link, std::wstring title, std::wstring comment, int32_t score); - virtual bool updateComment(std::string rid, std::wstring comment, int32_t score); - virtual std::string anonRankMsg(std::string rid, std::wstring link, std::wstring title); - - - virtual void tick(); - - void loadRankFile(std::string filename, std::string src); - void addRankMsg(RsRankLinkMsg *msg); - void publishMsgs(bool own); - - float locked_calcRank(RankGroup &grp); /* returns 0->100 */ - void locked_reSortGroup(RankGroup &grp); - - void sortAllMsgs(); - pqistore *createStore(std::string file, std::string src, bool reading); - - - /****************** p3Config STUFF *******************/ - protected: - bool addAnonToList(RsRankLinkMsg *msg); - - virtual RsSerialiser *setupSerialiser(); - virtual bool saveList(bool &cleanup, std::list&); - virtual bool loadList(std::list& load); - virtual void saveDone(); - - private: - - void createDummyData(); - - uint32_t storePeriod; - p3LinkMgr *mConnMgr; - - RsMutex mRankMtx; - - /***** below here is locked *****/ - - bool mRepublish; - bool mRepublishFriends; - time_t mRepublishFriendTS; - - uint32_t mStorePeriod; - - std::string mOwnId; - bool mUpdated; - bool mRepost; - - std::map mData; - std::multimap mRankings; - - /* Filter/Sort params */ - std::list mPeerFilter; - uint32_t mViewPeriod; - uint32_t mSortType; - - /* Anonymous Link List */ - std::list mAnon; - -}; - -#endif - - - diff --git a/plugins/LinksCloud/rsrank.h b/plugins/LinksCloud/rsrank.h deleted file mode 100644 index a69425c91..000000000 --- a/plugins/LinksCloud/rsrank.h +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef RETROSHARE_RANKING_GUI_INTERFACE_H -#define RETROSHARE_RANKING_GUI_INTERFACE_H - -/* - * libretroshare/src/rsiface: rsrank.h - * - * RetroShare C++ Interface. - * - * Copyright 2007-2008 by Robert Fernie. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License Version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - * Please report all bugs and problems to "retroshare@lunamutt.com". - * - */ - -#include -#include -#include - -/* The Main Interface Class - for information about your Peers */ -class RsRanks; -extern RsRanks *rsRanks; - -class RsRankComment -{ - public: - - std::string id; - std::wstring comment; - int32_t score; - time_t timestamp; -}; - -class RsRankDetails -{ - public: - - std::string rid; - std::wstring link; - std::wstring title; - float rank; - bool ownTag; - - std::list comments; -}; - -const uint32_t RS_RANK_SCORE = 0x0001; -const uint32_t RS_RANK_TIME = 0x0002; -const uint32_t RS_RANK_ALG = 0x0003; - -std::ostream &operator<<(std::ostream &out, const RsRankDetails &detail); - -class RsRanks -{ - public: - - RsRanks() { return; } -virtual ~RsRanks() { return; } - - /* needs update? */ -virtual bool updated() = 0; - - /* Set Sort Methods */ -virtual bool setSortPeriod(uint32_t period) = 0; -virtual bool setSortMethod(uint32_t type) = 0; -virtual bool clearPeerFilter() = 0; -virtual bool setPeerFilter(std::list peers) = 0; - - /* get Ids */ -virtual uint32_t getRankingsCount() = 0; -virtual float getMaxRank() = 0; -virtual bool getRankings(uint32_t first, uint32_t count, std::list &rids) = 0; -virtual bool getRankDetails(std::string rid, RsRankDetails &details) = 0; - - /* Add New Comment / Msg */ -virtual std::string newRankMsg(std::wstring link, std::wstring title, std::wstring comment, int32_t score) = 0; -virtual bool updateComment(std::string rid, std::wstring comment, int32_t score) = 0; - -virtual std::string anonRankMsg(std::string rid, std::wstring link, std::wstring title) = 0; - -}; - -#endif diff --git a/plugins/LinksCloud/rsrankitems.cc b/plugins/LinksCloud/rsrankitems.cc deleted file mode 100644 index dbae0de68..000000000 --- a/plugins/LinksCloud/rsrankitems.cc +++ /dev/null @@ -1,253 +0,0 @@ - -/* - * libretroshare/src/serialiser: rsbaseitems.cc - * - * RetroShare Serialiser. - * - * Copyright 2007-2008 by Robert Fernie. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License Version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - * Please report all bugs and problems to "retroshare@lunamutt.com". - * - */ - -#include "serialiser/rsbaseserial.h" -#include "serialiser/rstlvbase.h" -#include "rsrankitems.h" - -#define RSSERIAL_DEBUG 1 -#include - -/*************************************************************************/ - -void RsRankMsg::clear() -{ - rid.clear(); - timestamp = 0; - title.clear(); - comment.clear(); -} - -std::ostream &RsRankMsg::print(std::ostream &out, uint16_t indent) -{ - printRsItemBase(out, "RsRankMsg", indent); - uint16_t int_Indent = indent + 2; - printIndent(out, int_Indent); - out << "rid: " << rid << std::endl; - - printIndent(out, int_Indent); - out << "timestamp: " << timestamp << std::endl; - - - printIndent(out, int_Indent); - - std::string cnv_title(title.begin(), title.end()); - out << "msg: " << cnv_title << std::endl; - - printIndent(out, int_Indent); - std::string cnv_comment(comment.begin(), comment.end()); - out << "comment: " << cnv_comment << std::endl; - - printIndent(out, int_Indent); - out << "score: " << score << std::endl; - - printRsItemEnd(out, "RsRankMsg", indent); - return out; -} - -/*************************************************************************/ - -void RsRankLinkMsg::clear() -{ - rid.clear(); - pid.clear(); - timestamp = 0; - title.clear(); - comment.clear(); - score = 0; - linktype = 0; - link.clear(); -} - -std::ostream &RsRankLinkMsg::print(std::ostream &out, uint16_t indent) -{ - printRsItemBase(out, "RsRankLinkMsg", indent); - uint16_t int_Indent = indent + 2; - printIndent(out, int_Indent); - out << "rid: " << rid << std::endl; - printIndent(out, int_Indent); - out << "pid: " << pid << std::endl; - - printIndent(out, int_Indent); - out << "timestamp: " << timestamp << std::endl; - - printIndent(out, int_Indent); - - std::string cnv_title(title.begin(), title.end()); - out << "msg: " << cnv_title << std::endl; - - printIndent(out, int_Indent); - std::string cnv_comment(comment.begin(), comment.end()); - out << "comment: " << cnv_comment << std::endl; - - printIndent(out, int_Indent); - out << "score: " << score << std::endl; - - printIndent(out, int_Indent); - out << "linktype: " << linktype << std::endl; - printIndent(out, int_Indent); - std::string cnv_link(link.begin(), link.end()); - out << "link: " << cnv_link << std::endl; - - printRsItemEnd(out, "RsRankLinkMsg", indent); - return out; -} - - -uint32_t RsRankSerialiser::sizeLink(RsRankLinkMsg *item) -{ - uint32_t s = 8; /* header */ - s += GetTlvStringSize(item->rid); - s += GetTlvStringSize(item->pid); - s += 4; /* timestamp */ - s += GetTlvWideStringSize(item->title); - s += GetTlvWideStringSize(item->comment); - s += 4; /* score */ - s += 4; /* linktype */ - s += GetTlvWideStringSize(item->link); - - return s; -} - -/* serialise the data to the buffer */ -bool RsRankSerialiser::serialiseLink(RsRankLinkMsg *item, void *data, uint32_t *pktsize) -{ - uint32_t tlvsize = sizeLink(item); - uint32_t offset = 0; - - if (*pktsize < tlvsize) - return false; /* not enough space */ - - *pktsize = tlvsize; - - bool ok = true; - - ok &= setRsItemHeader(data, tlvsize, item->PacketId(), tlvsize); - - /* skip the header */ - offset += 8; - - /* add mandatory parts first */ - ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_GENID, item->rid); - ok &= SetTlvString(data, tlvsize, &offset, TLV_TYPE_STR_PEERID, item->pid); - - ok &= setRawUInt32(data, tlvsize, &offset, item->timestamp); - - ok &= SetTlvWideString(data, tlvsize, &offset, TLV_TYPE_WSTR_TITLE, item->title); - ok &= SetTlvWideString(data, tlvsize, &offset, TLV_TYPE_WSTR_COMMENT, item->comment); - - ok &= setRawUInt32(data, tlvsize, &offset, *((uint32_t *) &(item->score))); - - ok &= setRawUInt32(data, tlvsize, &offset, item->linktype); - - ok &= SetTlvWideString(data, tlvsize, &offset, TLV_TYPE_WSTR_LINK, item->link); - - if (offset != tlvsize) - { - ok = false; - std::cerr << "RsRankLinkSerialiser::serialiseLink() Size Error! " << std::endl; - } - - return ok; -} - -RsRankLinkMsg *RsRankSerialiser::deserialiseLink(void *data, uint32_t *pktsize) -{ - /* get the type and size */ - uint32_t rstype = getRsItemId(data); - uint32_t rssize = getRsItemSize(data); - - uint32_t offset = 0; - - - if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) || - (RS_SERVICE_TYPE_RANK != getRsItemService(rstype)) || - (RS_PKT_SUBTYPE_RANK_LINK3 != getRsItemSubType(rstype))) - { - return NULL; /* wrong type */ - } - - if (*pktsize < rssize) /* check size */ - return NULL; /* not enough data */ - - /* set the packet length */ - *pktsize = rssize; - - bool ok = true; - - /* ready to load */ - RsRankLinkMsg *item = new RsRankLinkMsg(); - item->clear(); - - /* skip the header */ - offset += 8; - - /* get mandatory parts first */ - ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_GENID, item->rid); - ok &= GetTlvString(data, rssize, &offset, TLV_TYPE_STR_PEERID, item->pid); - ok &= getRawUInt32(data, rssize, &offset, &(item->timestamp)); - ok &= GetTlvWideString(data, rssize, &offset, TLV_TYPE_WSTR_TITLE, item->title); - ok &= GetTlvWideString(data, rssize, &offset, TLV_TYPE_WSTR_COMMENT, item->comment); - ok &= getRawUInt32(data, rssize, &offset, (uint32_t *) &(item->score)); - ok &= getRawUInt32(data, rssize, &offset, &(item->linktype)); - ok &= GetTlvWideString(data, rssize, &offset, TLV_TYPE_WSTR_LINK, item->link); - - if (offset != rssize) - { - /* error */ - delete item; - return NULL; - } - - if (!ok) - { - delete item; - return NULL; - } - - return item; -} - - -uint32_t RsRankSerialiser::size(RsItem *item) -{ - return sizeLink((RsRankLinkMsg *) item); -} - -bool RsRankSerialiser::serialise(RsItem *item, void *data, uint32_t *pktsize) -{ - return serialiseLink((RsRankLinkMsg *) item, data, pktsize); -} - -RsItem *RsRankSerialiser::deserialise(void *data, uint32_t *pktsize) -{ - return deserialiseLink(data, pktsize); -} - - - -/*************************************************************************/ - diff --git a/plugins/LinksCloud/rsrankitems.h b/plugins/LinksCloud/rsrankitems.h deleted file mode 100644 index a3ddc78aa..000000000 --- a/plugins/LinksCloud/rsrankitems.h +++ /dev/null @@ -1,110 +0,0 @@ -#ifndef RS_RANK_ITEMS_H -#define RS_RANK_ITEMS_H - -/* - * libretroshare/src/serialiser: rsrankitems.h - * - * RetroShare Serialiser. - * - * Copyright 2007-2008 by Robert Fernie. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License Version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - * Please report all bugs and problems to "retroshare@lunamutt.com". - * - */ - -#include "serialiser/rsserial.h" -#include "serialiser/rstlvtypes.h" - -#include "p3ranking.h" - -const uint8_t RS_PKT_SUBTYPE_RANK_LINK3 = 0x04; -const uint8_t RS_PKT_SUBTYPE_RANK_PHOTO = 0x05; - -/**************************************************************************/ - - -class RsRankMsg: public RsItem -{ - public: - RsRankMsg(uint8_t subtype) :RsItem(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_RANK, subtype) { return; } - - virtual ~RsRankMsg() { return; } - virtual void clear(); - virtual std::ostream& print(std::ostream &out, uint16_t indent = 0); - - std::string rid; /* Random Id */ - std::string pid; /* Peer Id (cannot use RsItem::PeerId - as FoF transport!) */ - uint32_t timestamp; - std::wstring title; - std::wstring comment; - int32_t score; -}; - - -/* Flags */ -const uint32_t RS_LINK_TYPE_WEB = 0x0001; -const uint32_t RS_LINK_TYPE_OFF = 0x0002; - -class RsRankLinkMsg: public RsRankMsg -{ - public: - RsRankLinkMsg() - :RsRankMsg(RS_PKT_SUBTYPE_RANK_LINK3) { return; } -virtual ~RsRankLinkMsg() { return; } -virtual void clear(); -virtual std::ostream& print(std::ostream &out, uint16_t indent = 0); - - /**** SAME as RsRankMsg **** - std::string rid; - uint32_t timestamp; - std::wstring title; - std::wstring comment; - int32_t score; - ***************************/ - - /* Link specific Fields */ - uint32_t linktype; /* to be used later! */ - std::wstring link; -}; - -class RsRankSerialiser: public RsSerialType -{ - public: - RsRankSerialiser() - :RsSerialType(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_RANK) - { return; } -virtual ~RsRankSerialiser() - { return; } - -virtual uint32_t size(RsItem *); -virtual bool serialise (RsItem *item, void *data, uint32_t *size); -virtual RsItem * deserialise(void *data, uint32_t *size); - - private: - - /* For RS_PKT_SUBTYPE_RANK_LINK */ -virtual uint32_t sizeLink(RsRankLinkMsg *); -virtual bool serialiseLink (RsRankLinkMsg *item, void *data, uint32_t *size); -virtual RsRankLinkMsg *deserialiseLink(void *data, uint32_t *size); - -}; - -/**************************************************************************/ - -#endif /* RS_RANK_ITEMS_H */ - -