Version 0.003
24
README.md
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
QML based client for the Friendica Social Network.
|
||||
Tabs for news (incl. Direct Messages), friends and photos.
|
||||
Delete old version first when upgrading (due to database changes)
|
||||
OS: currently Linux and Android(4.3).
|
||||
Source code is a QtCreator project.
|
||||
|
||||
|
|
@ -18,22 +19,22 @@ Source code is a QtCreator project.
|
|||
# News #
|
||||
Currently supported:
|
||||
* Shows Posts from friends, favorited messages, Direct Messages and Notifications
|
||||
* Show news as timeline or tree (conversation opens in separate window)
|
||||
* Show news as timeline or tree (conversation opens in same window)
|
||||
* Open links in external browser
|
||||
* Click on contact phot for additional information
|
||||
* Deletion, Reposting, Answering of Posts
|
||||
* Liking, disliking, favoriting
|
||||
* Click on like text for additional contact info
|
||||
* Attending events
|
||||
* Update fetches new posts since last in local DB
|
||||
* More shows older posts from local DB
|
||||
* Create new Message with images or direct messages, Contact/Group access rights
|
||||
|
||||
* Create new Message with images or direct messages, Contact/Group access rights(can be stored), smileys
|
||||
* New image dialog
|
||||
|
||||
ToDo:
|
||||
* Nice symbols for liking, disliking
|
||||
* Videos and other binary data as attachment (sending and receiving)
|
||||
* Rich text editing in Send Dialog
|
||||
* Attachments for Direct messages (currently not supported in API)
|
||||
* Better image selection (currently ugly file dialog)
|
||||
|
||||
|
||||
# Friends #
|
||||
|
|
@ -44,7 +45,7 @@ Currently supported:
|
|||
* Show news of contact from local database
|
||||
* Send direct message, if contact is following
|
||||
* Show public pictures of contact (screenscraping of contact's website, works only with certain theme)
|
||||
* Open website of contact
|
||||
* Open website of contact or connect page (for other contacts)
|
||||
|
||||
ToDo:
|
||||
* More information for contact from description page, possibly private information for friends
|
||||
|
|
@ -56,12 +57,12 @@ Currently supported:
|
|||
* Download all own images to local directory
|
||||
* Show albums in grid, show images in album in grid and fullscreen
|
||||
* Show albums and images of contacts
|
||||
* Pinch to zoom, swipe to scroll
|
||||
|
||||
ToDo:
|
||||
* Private images of friends
|
||||
* Support for all themes of friends
|
||||
* Delete downloaded own images
|
||||
* Pinch to zoom, swipe to scroll
|
||||
|
||||
|
||||
# Config #
|
||||
|
|
@ -82,6 +83,15 @@ ToDo
|
|||
* Blingbling
|
||||
|
||||
|
||||
# New in version 0.003
|
||||
* improved BackButton behaviour
|
||||
* click on contact everywhere to get to contact details
|
||||
* Image dialog automatically opens in Android camera directory
|
||||
* Smiley Dialog in Message Dialog
|
||||
* Extensive use of FontAwesome for icons
|
||||
* Bugfixes
|
||||
|
||||
|
||||
## License ##
|
||||
* v0.001 for Friendica < 3.5
|
||||
* v0.002 for Friendica >= 3.5
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<manifest package="org.qtproject.friendiqa" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.2" android:versionCode="2" android:installLocation="auto">
|
||||
<manifest package="org.qtproject.friendiqa" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.3" android:versionCode="3" android:installLocation="auto">
|
||||
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="Friendiqa" android:icon="@drawable/icon" android:logo="@drawable/icon">
|
||||
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="Friendiqa" android:screenOrientation="unspecified" android:launchMode="singleTop">
|
||||
<intent-filter>
|
||||
4
source-android/android/gradle.properties
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
androidBuildToolsVersion=23.0.2
|
||||
androidCompileSdkVersion=23
|
||||
buildDir=.build
|
||||
qt5AndroidDir=/home/pankraz/Qt/5.8/android_armv7/src/android/java
|
||||
|
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
|||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
|
||||
1
source-android/android/local.properties
Normal file
|
|
@ -0,0 +1 @@
|
|||
sdk.dir=/opt/android-sdk
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<array name="qt_sources">
|
||||
<item>https://download.qt-project.org/ministro/android/qt5/qt-5.4</item>
|
||||
<item>https://download.qt.io/ministro/android/qt5/qt-5.8</item>
|
||||
</array>
|
||||
|
||||
<!-- The following is handled automatically by the deployment tool. It should
|
||||
200
source-android/application.qrc
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>qml/friendiqa.qml</file>
|
||||
<file>qml/newsqml/NewsTab.qml</file>
|
||||
<file>qml/newsqml/Newsitem.qml</file>
|
||||
<file>qml/newsqml/MessageSend.qml</file>
|
||||
<file>qml/newsqml/PermissionDialog.qml</file>
|
||||
<file>qml/newsqml/Conversation.qml</file>
|
||||
<file>qml/newsqml/ImageDialog.qml</file>
|
||||
<file>qml/newsqml/FriendicaActivities.qml</file>
|
||||
<file>qml/contactqml/FriendsTab.qml</file>
|
||||
<file>qml/contactqml/GroupComponent.qml</file>
|
||||
<file>qml/contactqml/ContactComponent.qml</file>
|
||||
<file>qml/contactqml/ContactDetailsComponent.qml</file>
|
||||
<file>qml/genericqml/BlueButton.qml</file>
|
||||
<file>qml/photoqml/PhotoComponent.qml</file>
|
||||
<file>qml/photoqml/PhotogroupComponent.qml</file>
|
||||
<file>qml/photoqml/PhotoTab.qml</file>
|
||||
<file>qml/configqml/InfoBox.qml</file>
|
||||
<file>qml/configqml/ConfigTab.qml</file>
|
||||
<file>js/layout.js</file>
|
||||
<file>js/photoworker.js</file>
|
||||
<file>js/service.js</file>
|
||||
<file>js/news.js</file>
|
||||
<file>js/newsworker.js</file>
|
||||
<file>js/helper.js</file>
|
||||
<file>images/defaultcontact.jpg</file>
|
||||
<file>images/fontawesome-webfont.ttf</file>
|
||||
<file>images/folder-blue.png</file>
|
||||
<file>qml/configqml/OSSettingsAndroid.qml</file>
|
||||
<file>qml/configqml/OSSettingsLinux.qml</file>
|
||||
<file>qml/newsqml/SmileyDialog.qml</file>
|
||||
<file>js/smiley.js</file>
|
||||
<file>images/smileys/animals/bee.gif</file>
|
||||
<file>images/smileys/animals/bigspider.gif</file>
|
||||
<file>images/smileys/animals/bunny.gif</file>
|
||||
<file>images/smileys/animals/bunnyflowers.gif</file>
|
||||
<file>images/smileys/animals/cat.gif</file>
|
||||
<file>images/smileys/animals/chick.gif</file>
|
||||
<file>images/smileys/animals/cow.gif</file>
|
||||
<file>images/smileys/animals/crab.gif</file>
|
||||
<file>images/smileys/animals/dog.gif</file>
|
||||
<file>images/smileys/animals/dolphin.gif</file>
|
||||
<file>images/smileys/animals/dragonfly.gif</file>
|
||||
<file>images/smileys/animals/elephant.gif</file>
|
||||
<file>images/smileys/animals/fish.gif</file>
|
||||
<file>images/smileys/animals/frog.gif</file>
|
||||
<file>images/smileys/animals/giraffe.gif</file>
|
||||
<file>images/smileys/animals/hamster.gif</file>
|
||||
<file>images/smileys/animals/horse.gif</file>
|
||||
<file>images/smileys/animals/ladybird.gif</file>
|
||||
<file>images/smileys/animals/monkey.gif</file>
|
||||
<file>images/smileys/animals/parrot.gif</file>
|
||||
<file>images/smileys/animals/pig.gif</file>
|
||||
<file>images/smileys/animals/sheep.gif</file>
|
||||
<file>images/smileys/animals/snail.gif</file>
|
||||
<file>images/smileys/animals/tux.gif</file>
|
||||
<file>images/smileys/babies/baby.gif</file>
|
||||
<file>images/smileys/babies/babycot.gif</file>
|
||||
<file>images/smileys/babies/pregnant.gif</file>
|
||||
<file>images/smileys/babies/stork.gif</file>
|
||||
<file>images/smileys/confused/confused.gif</file>
|
||||
<file>images/smileys/confused/dazed.gif</file>
|
||||
<file>images/smileys/confused/shrug.gif</file>
|
||||
<file>images/smileys/confused/stupid.gif</file>
|
||||
<file>images/smileys/cool/affro.gif</file>
|
||||
<file>images/smileys/cool/cool.gif</file>
|
||||
<file>images/smileys/devilangel/angel.gif</file>
|
||||
<file>images/smileys/devilangel/blondedevil.gif</file>
|
||||
<file>images/smileys/devilangel/catdevil.gif</file>
|
||||
<file>images/smileys/devilangel/cherub.gif</file>
|
||||
<file>images/smileys/devilangel/daseesaw.gif</file>
|
||||
<file>images/smileys/devilangel/devil.gif</file>
|
||||
<file>images/smileys/devilangel/graveside.gif</file>
|
||||
<file>images/smileys/devilangel/saint.gif</file>
|
||||
<file>images/smileys/devilangel/turnevil.gif</file>
|
||||
<file>images/smileys/disgust/fartblush.gif</file>
|
||||
<file>images/smileys/disgust/fartinbed.gif</file>
|
||||
<file>images/smileys/disgust/toilet.gif</file>
|
||||
<file>images/smileys/disgust/vomit.gif</file>
|
||||
<file>images/smileys/drink/tea.gif</file>
|
||||
<file>images/smileys/drool/drool.gif</file>
|
||||
<file>images/smileys/fantasy/alienmonster.gif</file>
|
||||
<file>images/smileys/fantasy/barbarian.gif</file>
|
||||
<file>images/smileys/fantasy/dinosaur.gif</file>
|
||||
<file>images/smileys/fantasy/dragon.gif</file>
|
||||
<file>images/smileys/fantasy/dragonwhelp.gif</file>
|
||||
<file>images/smileys/fantasy/ghost.gif</file>
|
||||
<file>images/smileys/fantasy/mummy.gif</file>
|
||||
<file>images/smileys/fight/2guns.gif</file>
|
||||
<file>images/smileys/fight/acid.gif</file>
|
||||
<file>images/smileys/fight/alienfight.gif</file>
|
||||
<file>images/smileys/fight/alpha.png</file>
|
||||
<file>images/smileys/fight/army.gif</file>
|
||||
<file>images/smileys/fight/arrowhead.gif</file>
|
||||
<file>images/smileys/fight/bfg.gif</file>
|
||||
<file>images/smileys/fight/bowman.gif</file>
|
||||
<file>images/smileys/fight/chainsaw.gif</file>
|
||||
<file>images/smileys/fight/crossbow.gif</file>
|
||||
<file>images/smileys/fight/crusader.gif</file>
|
||||
<file>images/smileys/fight/dead.gif</file>
|
||||
<file>images/smileys/fight/gangs.gif</file>
|
||||
<file>images/smileys/fight/hammersplat.gif</file>
|
||||
<file>images/smileys/fight/lasergun.gif</file>
|
||||
<file>images/smileys/fight/machinegun.gif</file>
|
||||
<file>images/smileys/fight/marine.gif</file>
|
||||
<file>images/smileys/fight/sabre.gif</file>
|
||||
<file>images/smileys/fight/samurai.gif</file>
|
||||
<file>images/smileys/fight/tank.gif</file>
|
||||
<file>images/smileys/fight/viking.gif</file>
|
||||
<file>images/smileys/food/apple.gif</file>
|
||||
<file>images/smileys/food/banana.gif</file>
|
||||
<file>images/smileys/food/birthdaycake.gif</file>
|
||||
<file>images/smileys/food/broccoli.gif</file>
|
||||
<file>images/smileys/food/cake.gif</file>
|
||||
<file>images/smileys/food/carrot.gif</file>
|
||||
<file>images/smileys/food/cooking.gif</file>
|
||||
<file>images/smileys/food/fryegg.gif</file>
|
||||
<file>images/smileys/food/popcorn.gif</file>
|
||||
<file>images/smileys/food/tomato.gif</file>
|
||||
<file>images/smileys/happy/cloud9.gif</file>
|
||||
<file>images/smileys/happy/tearsofjoy.gif</file>
|
||||
<file>images/smileys/laugh/hahaha.gif</file>
|
||||
<file>images/smileys/laugh/loltv.gif</file>
|
||||
<file>images/smileys/laugh/rofl.gif</file>
|
||||
<file>images/smileys/love/iloveyou.gif</file>
|
||||
<file>images/smileys/love/inlove.gif</file>
|
||||
<file>images/smileys/love/love.gif</file>
|
||||
<file>images/smileys/love/lovebear.gif</file>
|
||||
<file>images/smileys/love/lovebed.gif</file>
|
||||
<file>images/smileys/love/loveheart.gif</file>
|
||||
<file>images/smileys/music/dj.gif</file>
|
||||
<file>images/smileys/music/drums.gif</file>
|
||||
<file>images/smileys/music/elvis.gif</file>
|
||||
<file>images/smileys/music/guitar.gif</file>
|
||||
<file>images/smileys/music/trumpet.gif</file>
|
||||
<file>images/smileys/music/violin.gif</file>
|
||||
<file>images/smileys/oldcore/beard.png</file>
|
||||
<file>images/smileys/oldcore/headbang.gif</file>
|
||||
<file>images/smileys/oldcore/laughing.gif</file>
|
||||
<file>images/smileys/oldcore/shaka.gif</file>
|
||||
<file>images/smileys/oldcore/surprised.gif</file>
|
||||
<file>images/smileys/oldcore/whitebeard.png</file>
|
||||
<file>images/smileys/respect/bow.gif</file>
|
||||
<file>images/smileys/respect/bravo.gif</file>
|
||||
<file>images/smileys/respect/hailking.gif</file>
|
||||
<file>images/smileys/respect/number1.gif</file>
|
||||
<file>images/smileys/sad/crying.png</file>
|
||||
<file>images/smileys/sad/prisoner.gif</file>
|
||||
<file>images/smileys/sad/sigh.gif</file>
|
||||
<file>images/smileys/smoking/smoking.gif</file>
|
||||
<file>images/smileys/sport/archery.gif</file>
|
||||
<file>images/smileys/sport/basketball.gif</file>
|
||||
<file>images/smileys/sport/bowling.gif</file>
|
||||
<file>images/smileys/sport/cycling.gif</file>
|
||||
<file>images/smileys/sport/darts.gif</file>
|
||||
<file>images/smileys/sport/fencing.gif</file>
|
||||
<file>images/smileys/sport/football.gif</file>
|
||||
<file>images/smileys/sport/golf.gif</file>
|
||||
<file>images/smileys/sport/horseriding.gif</file>
|
||||
<file>images/smileys/sport/juggling.gif</file>
|
||||
<file>images/smileys/sport/skipping.gif</file>
|
||||
<file>images/smileys/sport/snooker.gif</file>
|
||||
<file>images/smileys/sport/surfing.gif</file>
|
||||
<file>images/smileys/sport/tennis.gif</file>
|
||||
<file>images/smileys/tired/countsheep.gif</file>
|
||||
<file>images/smileys/tired/hammock.gif</file>
|
||||
<file>images/smileys/tired/pillow.gif</file>
|
||||
<file>images/smileys/tired/yawn.gif</file>
|
||||
<file>images/smileys/core/beer_mug.gif</file>
|
||||
<file>images/smileys/core/coffee.gif</file>
|
||||
<file>images/smileys/core/dislike.gif</file>
|
||||
<file>images/smileys/core/friendica-16.png</file>
|
||||
<file>images/smileys/core/like.gif</file>
|
||||
<file>images/smileys/core/rm-16.png</file>
|
||||
<file>images/smileys/core/smiley-bangheaddesk.gif</file>
|
||||
<file>images/smileys/core/smiley-brokenheart.gif</file>
|
||||
<file>images/smileys/core/smiley-cool.gif</file>
|
||||
<file>images/smileys/core/smiley-cry.gif</file>
|
||||
<file>images/smileys/core/smiley-embarassed.gif</file>
|
||||
<file>images/smileys/core/smiley-facepalm.gif</file>
|
||||
<file>images/smileys/core/smiley-foot-in-mouth.gif</file>
|
||||
<file>images/smileys/core/smiley-heart.gif</file>
|
||||
<file>images/smileys/core/smiley-kiss.gif</file>
|
||||
<file>images/smileys/core/smiley-laughing.gif</file>
|
||||
<file>images/smileys/core/smiley-Oo.gif</file>
|
||||
<file>images/smileys/core/smiley-smile.gif</file>
|
||||
<file>images/smileys/core/smiley-surprised.gif</file>
|
||||
<file>images/smileys/core/smiley-thumbsup.gif</file>
|
||||
<file>images/smileys/core/smiley-tongue-out.gif</file>
|
||||
<file>images/smileys/core/smiley-undecided.gif</file>
|
||||
<file>images/smileys/core/smiley-wink.gif</file>
|
||||
<file>images/smileys/core/smiley-frown.gif</file>
|
||||
<file>images/smileys/adult/bong.gif</file>
|
||||
<file>images/smileys/adult/drunk.gif</file>
|
||||
<file>images/smileys/adult/finger.gif</file>
|
||||
<file>images/smileys/adult/sperm.gif</file>
|
||||
<file>images/smileys/adult/tits.gif</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
81
source-android/common/filesystem.cpp
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
#include "filesystem.h"
|
||||
|
||||
FILESYSTEM *FILESYSTEM::instance()
|
||||
{
|
||||
static FILESYSTEM filesystem;
|
||||
return &filesystem;
|
||||
}
|
||||
|
||||
FILESYSTEM::FILESYSTEM(QObject *parent) : QObject(parent){}
|
||||
|
||||
void FILESYSTEM::setDirectory(QString Directory)
|
||||
{
|
||||
if (Directory!=m_Directory) {
|
||||
m_Directory = Directory;
|
||||
emit directoryChanged();
|
||||
}
|
||||
}
|
||||
|
||||
QString FILESYSTEM::Directory() const
|
||||
{
|
||||
return m_Directory;
|
||||
}
|
||||
|
||||
QString FILESYSTEM::homePath() const
|
||||
{
|
||||
QDir dir(m_Directory);
|
||||
QString homeDir=dir.homePath();
|
||||
//qDebug(homeDir);
|
||||
return homeDir;
|
||||
}
|
||||
|
||||
QString FILESYSTEM::cameraPath() const
|
||||
{
|
||||
QAndroidJniObject object = QAndroidJniObject::getStaticObjectField<jstring>("android.os.Environment", "DIRECTORY_DCIM");
|
||||
QAndroidJniObject dcim =QAndroidJniObject::callStaticObjectMethod("android.os.Environment","getExternalStoragePublicDirectory", "(Ljava/lang/String;)Ljava/io/File;", object.object<jobject>());
|
||||
return dcim.toString();
|
||||
}
|
||||
|
||||
|
||||
//bool FILESYSTEM::direxist(QString Directory) const
|
||||
//{QDir dir(Directory);
|
||||
// return dir.exists();
|
||||
//}
|
||||
|
||||
void FILESYSTEM::makeDir(QString name)
|
||||
{
|
||||
QDir dir(m_Directory);
|
||||
if (dir.mkdir(name)){
|
||||
emit success(name);
|
||||
}
|
||||
else {emit error(name,1);}
|
||||
}
|
||||
|
||||
void FILESYSTEM::rmDir()
|
||||
{
|
||||
QDir dir(m_Directory);
|
||||
if (dir.removeRecursively()){
|
||||
emit success(m_Directory);
|
||||
}
|
||||
else {emit error(m_Directory,1);}
|
||||
}
|
||||
|
||||
void FILESYSTEM::rmFile(QString name)
|
||||
{
|
||||
QDir dir(m_Directory);
|
||||
if(dir.remove(name)){
|
||||
emit success(name);
|
||||
}
|
||||
else {emit error(name,1);}
|
||||
}
|
||||
QFileInfoList FILESYSTEM::fileList()
|
||||
{
|
||||
QDir dir(m_Directory);
|
||||
QStringList filters;
|
||||
filters << "*.png" <<"*.PNG" << "*.jpg" << "*.JPG" << "*.JPEG";
|
||||
dir.setNameFilters(filters);
|
||||
dir.setSorting(QDir::Time | QDir::Reversed);
|
||||
//QStringList m_Filelist=dir.entryInfoList();
|
||||
//qDebug() << "filelist " << m_Filelist;
|
||||
return dir.entryInfoList();
|
||||
}
|
||||
|
|
@ -3,20 +3,30 @@
|
|||
|
||||
#include <QDir>
|
||||
#include <QObject>
|
||||
#include <QtAndroidExtras>
|
||||
|
||||
class FILESYSTEM : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QString Directory READ Directory WRITE setDirectory NOTIFY directoryChanged)
|
||||
|
||||
//Q_PROPERTY(bool direxist READ direxist)
|
||||
Q_PROPERTY(QString homePath READ homePath)
|
||||
Q_PROPERTY(QString cameraPath READ cameraPath)
|
||||
|
||||
|
||||
public:
|
||||
static FILESYSTEM *instance();
|
||||
explicit FILESYSTEM(QObject *parent = 0);
|
||||
void setDirectory(QString Directory);
|
||||
QString Directory() const;
|
||||
QFileInfoList fileList();
|
||||
//bool direxist(QString Directory);
|
||||
QString homePath() const;
|
||||
QString cameraPath() const;
|
||||
|
||||
signals:
|
||||
void directoryChanged();
|
||||
//void fileListContent(QList data);
|
||||
void success(QString data);
|
||||
void error(QString data, int code);
|
||||
|
||||
|
|
@ -24,9 +34,12 @@ public slots:
|
|||
void makeDir(QString name);
|
||||
void rmDir();
|
||||
void rmFile(QString name);
|
||||
|
||||
//void fileList();
|
||||
|
||||
private:
|
||||
QString m_Directory;
|
||||
QString homeDir;
|
||||
//QList m_Filelist;
|
||||
};
|
||||
|
||||
#endif // FILSYSTEM_H
|
||||
|
|
@ -175,6 +175,7 @@ void XHR::onReplyError(QNetworkReply::NetworkError code)
|
|||
{
|
||||
qDebug() << code;
|
||||
emit this->error( bufferToString(), (int) code);
|
||||
buffer.clear();
|
||||
reply->deleteLater();
|
||||
}
|
||||
|
||||
|
|
@ -182,6 +183,7 @@ void XHR::onReplySuccess()
|
|||
{
|
||||
qDebug() << "!";
|
||||
emit this->success( bufferToString() );
|
||||
buffer.clear();
|
||||
reply->deleteLater();
|
||||
}
|
||||
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
# The name of your application
|
||||
TARGET = friendiqa
|
||||
CONFIG += debug
|
||||
QT += qml quick gui widgets
|
||||
QT += qml quick gui widgets androidextras
|
||||
|
||||
SOURCES += common/friendiqa.cpp \
|
||||
common/uploadableimage.cpp \
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
source-android/images/folder-blue.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
source-android/images/fontawesome-webfont.ttf
Normal file
BIN
source-android/images/smileys/adult/bong.gif
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
source-android/images/smileys/adult/drunk.gif
Normal file
|
After Width: | Height: | Size: 648 B |
BIN
source-android/images/smileys/adult/finger.gif
Normal file
|
After Width: | Height: | Size: 115 B |
BIN
source-android/images/smileys/adult/sperm.gif
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
source-android/images/smileys/adult/tits.gif
Normal file
|
After Width: | Height: | Size: 696 B |
BIN
source-android/images/smileys/animals/bee.gif
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
source-android/images/smileys/animals/bigspider.gif
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
source-android/images/smileys/animals/bunny.gif
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
source-android/images/smileys/animals/bunnyflowers.gif
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
source-android/images/smileys/animals/cat.gif
Normal file
|
After Width: | Height: | Size: 864 B |
BIN
source-android/images/smileys/animals/chick.gif
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
source-android/images/smileys/animals/cow.gif
Normal file
|
After Width: | Height: | Size: 780 B |
BIN
source-android/images/smileys/animals/crab.gif
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
source-android/images/smileys/animals/dog.gif
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
source-android/images/smileys/animals/dolphin.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
source-android/images/smileys/animals/dragonfly.gif
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
source-android/images/smileys/animals/elephant.gif
Normal file
|
After Width: | Height: | Size: 951 B |
BIN
source-android/images/smileys/animals/fish.gif
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
source-android/images/smileys/animals/frog.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
source-android/images/smileys/animals/giraffe.gif
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
source-android/images/smileys/animals/hamster.gif
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
source-android/images/smileys/animals/horse.gif
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
source-android/images/smileys/animals/ladybird.gif
Normal file
|
After Width: | Height: | Size: 990 B |
BIN
source-android/images/smileys/animals/monkey.gif
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
source-android/images/smileys/animals/parrot.gif
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
source-android/images/smileys/animals/pig.gif
Normal file
|
After Width: | Height: | Size: 925 B |
BIN
source-android/images/smileys/animals/sheep.gif
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
source-android/images/smileys/animals/snail.gif
Normal file
|
After Width: | Height: | Size: 645 B |
BIN
source-android/images/smileys/animals/tux.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
source-android/images/smileys/babies/baby.gif
Normal file
|
After Width: | Height: | Size: 334 B |
BIN
source-android/images/smileys/babies/babycot.gif
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
source-android/images/smileys/babies/pregnant.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
source-android/images/smileys/babies/stork.gif
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
source-android/images/smileys/confused/confused.gif
Normal file
|
After Width: | Height: | Size: 594 B |
BIN
source-android/images/smileys/confused/dazed.gif
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
source-android/images/smileys/confused/shrug.gif
Normal file
|
After Width: | Height: | Size: 184 B |
BIN
source-android/images/smileys/confused/stupid.gif
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
source-android/images/smileys/cool/affro.gif
Normal file
|
After Width: | Height: | Size: 158 B |
BIN
source-android/images/smileys/cool/cool.gif
Normal file
|
After Width: | Height: | Size: 5 KiB |
BIN
source-android/images/smileys/core/beer_mug.gif
Normal file
|
After Width: | Height: | Size: 1,021 B |
BIN
source-android/images/smileys/core/coffee.gif
Normal file
|
After Width: | Height: | Size: 231 B |
BIN
source-android/images/smileys/core/dislike.gif
Normal file
|
After Width: | Height: | Size: 119 B |
BIN
source-android/images/smileys/core/friendica-16.png
Normal file
|
After Width: | Height: | Size: 756 B |
BIN
source-android/images/smileys/core/like.gif
Normal file
|
After Width: | Height: | Size: 119 B |
BIN
source-android/images/smileys/core/rm-16.png
Normal file
|
After Width: | Height: | Size: 676 B |
BIN
source-android/images/smileys/core/smiley-Oo.gif
Normal file
|
After Width: | Height: | Size: 1,003 B |
BIN
source-android/images/smileys/core/smiley-bangheaddesk.gif
Normal file
|
After Width: | Height: | Size: 885 B |
BIN
source-android/images/smileys/core/smiley-brokenheart.gif
Normal file
|
After Width: | Height: | Size: 598 B |
BIN
source-android/images/smileys/core/smiley-cool.gif
Normal file
|
After Width: | Height: | Size: 315 B |
BIN
source-android/images/smileys/core/smiley-cry.gif
Normal file
|
After Width: | Height: | Size: 303 B |
BIN
source-android/images/smileys/core/smiley-embarassed.gif
Normal file
|
After Width: | Height: | Size: 300 B |
BIN
source-android/images/smileys/core/smiley-facepalm.gif
Normal file
|
After Width: | Height: | Size: 582 B |
BIN
source-android/images/smileys/core/smiley-foot-in-mouth.gif
Normal file
|
After Width: | Height: | Size: 306 B |
BIN
source-android/images/smileys/core/smiley-frown.gif
Normal file
|
After Width: | Height: | Size: 301 B |
BIN
source-android/images/smileys/core/smiley-heart.gif
Normal file
|
After Width: | Height: | Size: 577 B |
BIN
source-android/images/smileys/core/smiley-kiss.gif
Normal file
|
After Width: | Height: | Size: 299 B |
BIN
source-android/images/smileys/core/smiley-laughing.gif
Normal file
|
After Width: | Height: | Size: 306 B |
BIN
source-android/images/smileys/core/smiley-smile.gif
Normal file
|
After Width: | Height: | Size: 306 B |
BIN
source-android/images/smileys/core/smiley-surprised.gif
Normal file
|
After Width: | Height: | Size: 303 B |
BIN
source-android/images/smileys/core/smiley-thumbsup.gif
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
source-android/images/smileys/core/smiley-tongue-out.gif
Normal file
|
After Width: | Height: | Size: 290 B |
BIN
source-android/images/smileys/core/smiley-undecided.gif
Normal file
|
After Width: | Height: | Size: 299 B |
BIN
source-android/images/smileys/core/smiley-wink.gif
Normal file
|
After Width: | Height: | Size: 312 B |
BIN
source-android/images/smileys/devilangel/angel.gif
Normal file
|
After Width: | Height: | Size: 312 B |
BIN
source-android/images/smileys/devilangel/blondedevil.gif
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
source-android/images/smileys/devilangel/catdevil.gif
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
source-android/images/smileys/devilangel/cherub.gif
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
source-android/images/smileys/devilangel/daseesaw.gif
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
source-android/images/smileys/devilangel/devil.gif
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
source-android/images/smileys/devilangel/graveside.gif
Normal file
|
After Width: | Height: | Size: 8 KiB |
BIN
source-android/images/smileys/devilangel/saint.gif
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
source-android/images/smileys/devilangel/turnevil.gif
Normal file
|
After Width: | Height: | Size: 636 B |
BIN
source-android/images/smileys/disgust/fartblush.gif
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
source-android/images/smileys/disgust/fartinbed.gif
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
source-android/images/smileys/disgust/toilet.gif
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
source-android/images/smileys/disgust/vomit.gif
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
source-android/images/smileys/drink/tea.gif
Normal file
|
After Width: | Height: | Size: 9.7 KiB |
BIN
source-android/images/smileys/drool/drool.gif
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
source-android/images/smileys/fantasy/alienmonster.gif
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
source-android/images/smileys/fantasy/barbarian.gif
Normal file
|
After Width: | Height: | Size: 454 B |
BIN
source-android/images/smileys/fantasy/dinosaur.gif
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
source-android/images/smileys/fantasy/dragon.gif
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
source-android/images/smileys/fantasy/dragonwhelp.gif
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
source-android/images/smileys/fantasy/ghost.gif
Normal file
|
After Width: | Height: | Size: 1 KiB |
BIN
source-android/images/smileys/fantasy/mummy.gif
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
source-android/images/smileys/fight/2guns.gif
Normal file
|
After Width: | Height: | Size: 810 B |
BIN
source-android/images/smileys/fight/acid.gif
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
source-android/images/smileys/fight/alienfight.gif
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
source-android/images/smileys/fight/alpha.png
Normal file
|
After Width: | Height: | Size: 664 B |
BIN
source-android/images/smileys/fight/army.gif
Normal file
|
After Width: | Height: | Size: 3 KiB |
BIN
source-android/images/smileys/fight/arrowhead.gif
Normal file
|
After Width: | Height: | Size: 174 B |
BIN
source-android/images/smileys/fight/bfg.gif
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
source-android/images/smileys/fight/bowman.gif
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
source-android/images/smileys/fight/chainsaw.gif
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
source-android/images/smileys/fight/crossbow.gif
Normal file
|
After Width: | Height: | Size: 891 B |
BIN
source-android/images/smileys/fight/crusader.gif
Normal file
|
After Width: | Height: | Size: 403 B |
BIN
source-android/images/smileys/fight/dead.gif
Normal file
|
After Width: | Height: | Size: 167 B |
BIN
source-android/images/smileys/fight/gangs.gif
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
source-android/images/smileys/fight/hammersplat.gif
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
source-android/images/smileys/fight/lasergun.gif
Normal file
|
After Width: | Height: | Size: 2 KiB |
BIN
source-android/images/smileys/fight/machinegun.gif
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
source-android/images/smileys/fight/marine.gif
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
source-android/images/smileys/fight/sabre.gif
Normal file
|
After Width: | Height: | Size: 664 B |
BIN
source-android/images/smileys/fight/samurai.gif
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
source-android/images/smileys/fight/tank.gif
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
source-android/images/smileys/fight/viking.gif
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
source-android/images/smileys/food/apple.gif
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
source-android/images/smileys/food/banana.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
source-android/images/smileys/food/birthdaycake.gif
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
source-android/images/smileys/food/broccoli.gif
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
source-android/images/smileys/food/cake.gif
Normal file
|
After Width: | Height: | Size: 668 B |
BIN
source-android/images/smileys/food/carrot.gif
Normal file
|
After Width: | Height: | Size: 583 B |
BIN
source-android/images/smileys/food/cooking.gif
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
source-android/images/smileys/food/fryegg.gif
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
source-android/images/smileys/food/popcorn.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
source-android/images/smileys/food/tomato.gif
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
source-android/images/smileys/happy/cloud9.gif
Normal file
|
After Width: | Height: | Size: 265 B |
BIN
source-android/images/smileys/happy/tearsofjoy.gif
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
source-android/images/smileys/laugh/hahaha.gif
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
source-android/images/smileys/laugh/loltv.gif
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
source-android/images/smileys/laugh/rofl.gif
Normal file
|
After Width: | Height: | Size: 1,010 B |
BIN
source-android/images/smileys/love/iloveyou.gif
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
source-android/images/smileys/love/inlove.gif
Normal file
|
After Width: | Height: | Size: 1,005 B |
BIN
source-android/images/smileys/love/love.gif
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
source-android/images/smileys/love/lovebear.gif
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
source-android/images/smileys/love/lovebed.gif
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
source-android/images/smileys/love/loveheart.gif
Normal file
|
After Width: | Height: | Size: 652 B |
BIN
source-android/images/smileys/music/dj.gif
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
source-android/images/smileys/music/drums.gif
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
source-android/images/smileys/music/elvis.gif
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
source-android/images/smileys/music/guitar.gif
Normal file
|
After Width: | Height: | Size: 2 KiB |
BIN
source-android/images/smileys/music/trumpet.gif
Normal file
|
After Width: | Height: | Size: 461 B |
BIN
source-android/images/smileys/music/violin.gif
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
source-android/images/smileys/oldcore/beard.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
source-android/images/smileys/oldcore/headbang.gif
Normal file
|
After Width: | Height: | Size: 885 B |
BIN
source-android/images/smileys/oldcore/laughing.gif
Normal file
|
After Width: | Height: | Size: 306 B |
BIN
source-android/images/smileys/oldcore/shaka.gif
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
source-android/images/smileys/oldcore/surprised.gif
Normal file
|
After Width: | Height: | Size: 303 B |
BIN
source-android/images/smileys/oldcore/whitebeard.png
Normal file
|
After Width: | Height: | Size: 1 KiB |
BIN
source-android/images/smileys/respect/bow.gif
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
source-android/images/smileys/respect/bravo.gif
Normal file
|
After Width: | Height: | Size: 761 B |
BIN
source-android/images/smileys/respect/hailking.gif
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
source-android/images/smileys/respect/number1.gif
Normal file
|
After Width: | Height: | Size: 365 B |
BIN
source-android/images/smileys/sad/crying.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
source-android/images/smileys/sad/prisoner.gif
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
source-android/images/smileys/sad/sigh.gif
Normal file
|
After Width: | Height: | Size: 748 B |
BIN
source-android/images/smileys/smoking/smoking.gif
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
source-android/images/smileys/sport/archery.gif
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
source-android/images/smileys/sport/basketball.gif
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
source-android/images/smileys/sport/bowling.gif
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
source-android/images/smileys/sport/cycling.gif
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
source-android/images/smileys/sport/darts.gif
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
source-android/images/smileys/sport/fencing.gif
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
source-android/images/smileys/sport/football.gif
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
source-android/images/smileys/sport/golf.gif
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
source-android/images/smileys/sport/horseriding.gif
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
source-android/images/smileys/sport/juggling.gif
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
source-android/images/smileys/sport/skipping.gif
Normal file
|
After Width: | Height: | Size: 859 B |
BIN
source-android/images/smileys/sport/snooker.gif
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
source-android/images/smileys/sport/surfing.gif
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
source-android/images/smileys/sport/tennis.gif
Normal file
|
After Width: | Height: | Size: 1 KiB |
BIN
source-android/images/smileys/tired/countsheep.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
source-android/images/smileys/tired/hammock.gif
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
source-android/images/smileys/tired/pillow.gif
Normal file
|
After Width: | Height: | Size: 467 B |
BIN
source-android/images/smileys/tired/yawn.gif
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -6,15 +6,15 @@ function friendicaRequest(login,api,rootwindow,callback) {
|
|||
xhrequest.onreadystatechange = function() {
|
||||
//print(api+JSON.stringify(login));
|
||||
if(xhrequest.readyState === XMLHttpRequest.DONE) {
|
||||
try{ if (xhrequest.responseText!=""){
|
||||
try{ if (xhrequest.status=200){ //if (xhrequest.responseText!=""){
|
||||
callback(xhrequest.responseText)
|
||||
}else{
|
||||
showMessage("Error","API:" +api+"\n NO RESPONSE",rootwindow);
|
||||
showMessage("Error","API:" +api+"\n NO RESPONSE"+xhrequest.statusText,rootwindow);
|
||||
callback(xhrequest.responseText)
|
||||
}
|
||||
}
|
||||
catch (e){
|
||||
showMessage("Error", api+" "+e,rootwindow)
|
||||
showMessage("Error", api+" "+e+" "+xhrequest.statusText,rootwindow)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -25,7 +25,7 @@ function friendicaRequest(login,api,rootwindow,callback) {
|
|||
function friendicaPostRequest(login,api,rootwindow,callback) {
|
||||
var xhrequest= new XMLHttpRequest();
|
||||
xhrequest.onreadystatechange = function() {
|
||||
//print(api+JSON.stringify(login));
|
||||
//print(api+JSON.stringify(login)+Qt.atob(login.password));
|
||||
if (xhrequest.readyState === XMLHttpRequest.HEADERS_RECEIVED) {
|
||||
} else if(xhrequest.readyState === XMLHttpRequest.DONE) {
|
||||
try{ if (xhrequest.responseText!=""){
|
||||
|
|
@ -43,8 +43,15 @@ function friendicaPostRequest(login,api,rootwindow,callback) {
|
|||
xhrequest.open("POST", login.server+api,true,login.username,Qt.atob(login.password));
|
||||
xhrequest.send();
|
||||
}
|
||||
|
||||
|
||||
function getCount(database,login,table,field,countvalue){
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
var count=0;
|
||||
db.transaction( function(tx) {
|
||||
var countrs = tx.executeSql('SELECT COUNT(*) from '+table+' WHERE username= "'+ login.username +'" AND '+field+' = "'+countvalue+'"');
|
||||
count = parseInt(countrs.rows.item(0)["COUNT(*)"])
|
||||
})
|
||||
return count
|
||||
}
|
||||
|
||||
function friendicaWebRequest(url,rootwindow,callback) {
|
||||
var xhrequest = new XMLHttpRequest();
|
||||
|
|
@ -62,19 +69,23 @@ function friendicaWebRequest(url,rootwindow,callback) {
|
|||
xhrequest.send();
|
||||
}
|
||||
|
||||
function readData(database,table,username,callback,filter,filtervalue) { // reads and applies data from DB
|
||||
function readData(database,table,username,callback,filter,filtervalue, sort) { // reads and applies data from DB
|
||||
if (filter){
|
||||
var where = " AND "+ filter +" = '" + filtervalue+"'";
|
||||
} else { var where="";}
|
||||
if (username){
|
||||
var user = ' where username= "'+ username +'"';
|
||||
} else { var user='';}
|
||||
|
||||
if (sort){
|
||||
var sortparam = " ORDER BY "+ sort;
|
||||
} else { var sortparam="";}
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
if(!db) { return; }
|
||||
db.transaction( function(tx) {
|
||||
//print('select * from '+table+user+where);
|
||||
//print('select * from '+table+user+where+sortparam);
|
||||
var rsArray=[];
|
||||
var rs = tx.executeSql('select * from '+table+user+where);
|
||||
var rs = tx.executeSql('select * from '+table+user+where+sortparam);
|
||||
for(var i = 0; i < rs.rows.length; i++) {
|
||||
rsArray.push(rs.rows.item(i))
|
||||
}
|
||||
|
|
@ -100,7 +111,7 @@ var where = " AND "+ filter +" = '" + filtervalue+"'";
|
|||
});
|
||||
}
|
||||
|
||||
function showMessage(header,message,rootwindow){
|
||||
function showMessage(header,message,rootwindow){print("message: "+message);
|
||||
var cleanmessage=message.replace(/"/g,"-");
|
||||
var messageString='import QtQuick 2.0; import QtQuick.Dialogs 1.2; MessageDialog{ visible: true; title:"'+header+'";standardButtons: StandardButton.Ok; text:" '+cleanmessage+'"}';
|
||||
var messageObject=Qt.createQmlObject(messageString,rootwindow,"messageOutput");
|
||||
|
|
@ -108,7 +119,7 @@ function showMessage(header,message,rootwindow){
|
|||
|
||||
function inArray(list, prop, val) {
|
||||
if (list.length > 0 ) {
|
||||
for (var i in list) { if (list[i][prop] === val) {
|
||||
for (var i in list) { if (list[i][prop] == val) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
|
@ -48,46 +48,52 @@ function getCurrentContacts(login,database,callback){
|
|||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
var contactlist=[];
|
||||
db.transaction( function(tx) {
|
||||
var result = tx.executeSql('SELECT id from contacts WHERE username="'+login.username+'" AND isFriend=1'); // check for friends
|
||||
var result = tx.executeSql('SELECT url from contacts WHERE username="'+login.username+'" AND isFriend=1'); // check for friends
|
||||
for (var i=0;i<result.rows.length;i++){
|
||||
contactlist.push(result.rows.item(i).id )
|
||||
contactlist.push(result.rows.item(i).url )
|
||||
//print(result.rows.item(i).url)
|
||||
}
|
||||
var lastDate=Date.now()-172800000;// 2 days old
|
||||
print('SELECT id from contacts WHERE username="'+login.username+'" AND isFriend=0 AND imageAge>'+lastDate);
|
||||
var result2 = tx.executeSql('SELECT id from contacts WHERE username="'+login.username+'" AND isFriend=0 AND imageAge > '+lastDate);
|
||||
//print('SELECT url from contacts WHERE username="'+login.username+'" AND isFriend=0 AND imageAge>'+lastDate);
|
||||
var result2 = tx.executeSql('SELECT url from contacts WHERE username="'+login.username+'" AND isFriend=0 AND imageAge > '+lastDate);
|
||||
for (var j=0;j<result2.rows.length;j++){
|
||||
contactlist.push(result2.rows.item(j).id )
|
||||
contactlist.push(result2.rows.item(j).url )
|
||||
}
|
||||
})
|
||||
callback(contactlist)
|
||||
}
|
||||
|
||||
function findNewContacts(news,contacts){
|
||||
function findNewContacts(news,contacts){//print("contacts: "+JSON.stringify(contacts))
|
||||
var newContacts=[];
|
||||
for (var i=0;i<news.length;i++){
|
||||
var id=parseInt(news[i].user.id);
|
||||
if(contacts.indexOf(id)==-1 && !(inArray(newContacts,"id",id))){
|
||||
var url=news[i].user.url;
|
||||
if(contacts.indexOf(url)==-1 && !(inArray(newContacts,"url",url))){print("new contact "+JSON.stringify(news[i].user));
|
||||
news[i].user.isFriend=0;
|
||||
newContacts.push(news[i].user);
|
||||
}
|
||||
if (news[i].friendica_activities.like.length>0){
|
||||
for (var j=0;j<news[i].friendica_activities.like.length;j++){
|
||||
var like_id=parseInt(news[i].friendica_activities.like[j].id);
|
||||
if(contacts.indexOf(like_id)==-1 && !(inArray(newContacts,"id",like_id))){
|
||||
var like_url=news[i].friendica_activities.like[j].url;
|
||||
if(contacts.indexOf(like_url)==-1 && !(inArray(newContacts,"url",like_url))){print("new like contact "+JSON.stringify(news[i].friendica_activities.like[j]));
|
||||
news[i].friendica_activities.like[j].isFriend=0;
|
||||
newContacts.push(news[i].friendica_activities.like[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (news[i].friendica_activities.dislike.length>0){
|
||||
for (var k=0;j<news[k].friendica_activities.dislike.length;k++){
|
||||
var dislike_id=parseInt(news[i].friendica_activities.dislike[k].id);
|
||||
if(contacts.indexOf(dislike_id)==-1 && !(inArray(newContacts,"id",dislike_id))){
|
||||
news[i].friendica_activities.dislike[k].isFriend=0;
|
||||
}
|
||||
if (news[i].friendica_activities.dislike.length>0){
|
||||
for (var k=0;j<news[k].friendica_activities.dislike.length;k++){
|
||||
var dislike_url=news[i].friendica_activities.dislike[k].url;
|
||||
if(contacts.indexOf(dislike_url)==-1 && !(inArray(newContacts,"url",dislike_url))){print("new dislike contact "+JSON.stringify(news[i].friendica_activities.dislike[k]));
|
||||
news[i].friendica_activities.dislike[k].isFriend=0;
|
||||
newContacts.push(news[i].friendica_activities.dislike[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// var owner_id=parseInt(news[i].friendica_owner.id);
|
||||
// if(contacts.indexOf(owner_id)==-1 && !(inArray(newContacts,"id",owner_id))){
|
||||
// news[i].friendica_owner.isFriend=0;
|
||||
// newContacts.push(news[i].friendica_owner);
|
||||
// }
|
||||
}
|
||||
return newContacts
|
||||
}
|
||||
|
|
@ -97,20 +103,21 @@ function storeNews(login,database,news,rootwindow,callback){
|
|||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
for (var i=0;i<news.length;i++){
|
||||
//print('store news data for ' + news[i].id+JSON.stringify(news[i].friendica_activities));
|
||||
var ausdruck=news[i];
|
||||
var likearray=[]; for (var user in news[i].friendica_activities.like){likearray.push(parseInt(news[i].friendica_activities.like[user].id))}
|
||||
var dislikearray=[]; for (var user in news[i].friendica_activities.dislike){parseInt(news[i].friendica_activities.dislike[user].id)}
|
||||
var attendyesarray=[]; for (var user in news[i].friendica_activities.attendyes){attendyesarray.push(parseInt(news[i].friendica_activities.attendyes[user].id))}
|
||||
var attendnoarray=[]; for (var user in news[i].friendica_activities.attendno){attendnoarray.push(parseInt(news[i].friendica_activities.attendno[user].id))}
|
||||
var attendmaybearray=[]; for (var user in news[i].friendica_activities.attendmaybe){attendmaybearray.push(parseInt(news[i].friendica_activities.attendmaybe[user].id))}
|
||||
//var ausdruck=news[i];
|
||||
var likearray=[]; for (var user in news[i].friendica_activities.like){likearray.push(news[i].friendica_activities.like[user].url)}
|
||||
var dislikearray=[]; for (var user in news[i].friendica_activities.dislike){dislikearray.push(news[i].friendica_activities.dislike[user].url)}
|
||||
var attendyesarray=[]; for (var user in news[i].friendica_activities.attendyes){attendyesarray.push(news[i].friendica_activities.attendyes[user].url)}
|
||||
var attendnoarray=[]; for (var user in news[i].friendica_activities.attendno){attendnoarray.push(news[i].friendica_activities.attendno[user].url)}
|
||||
var attendmaybearray=[]; for (var user in news[i].friendica_activities.attendmaybe){attendmaybearray.push(news[i].friendica_activities.attendmaybe[user].url)}
|
||||
var friendica_activities=[likearray,dislikearray,attendyesarray,attendnoarray,attendmaybearray]
|
||||
var attachments="";if (news[i].attachments){attachments=Qt.btoa(JSON.stringify(news[i].attachments))}print(attachments)
|
||||
db.transaction( function(tx) {
|
||||
var result = tx.executeSql('SELECT * from news where username="'+login.username+'" AND status_id = "'+news[i].id+'" AND messagetype=0'); // check for news id
|
||||
if(result.rows.length === 1) {// use update
|
||||
print(news[i].id +' news exists, update it')
|
||||
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=0, text="'+Qt.btoa(news[i].text)+'", created_at="'+Date.parse(cleanDate(news[i].created_at))+'", in_reply_to_status_id="'+news[i].in_reply_to_status_id+'", source="'+news[i].source+'", status_id="'+news[i].id+'", in_reply_to_user_id="'+news[i].in_reply_to_user_id+'", geo="'+news[i].geo+'", favorited="'+news[i].favorited+'", uid="'+news[i].user.id+'", statusnet_html="'+Qt.btoa(news[i].status_html)+'", statusnet_conversation_id="'+news[i].statusnet_conversation_id+'",friendica_activities="'+JSON.stringify(friendica_activities)+'" where username="'+login.username+'" AND status_id="'+news[i].status_id+'" AND messagetype=0');
|
||||
//print(news[i].id +' news exists, update it'+'UPDATE news SET username="'+login.username+'", messagetype=0, text="'+Qt.btoa(news[i].text)+'", created_at="'+Date.parse(cleanDate(news[i].created_at))+'", in_reply_to_status_id="'+news[i].in_reply_to_status_id+'", source="'+news[i].source+'", status_id="'+news[i].id+'", in_reply_to_user_id="'+news[i].in_reply_to_user_id+'", geo="'+news[i].geo+'", favorited="'+news[i].favorited+'", uid="'+news[i].user.id+'", statusnet_html="'+Qt.btoa(news[i].status_html)+'", statusnet_conversation_id="'+news[i].statusnet_conversation_id+'",friendica_activities="'+Qt.btoa(JSON.stringify(friendica_activities))+'",attachments="'+attachments+'",friendica_owner="'+news[i].friendica_owner.url+'" where username="'+login.username+'" AND status_id="'+news[i].status_id+'" AND messagetype=0')
|
||||
result = tx.executeSql('UPDATE news SET username="'+login.username+'", messagetype=0, text="'+Qt.btoa(news[i].text)+'", created_at="'+Date.parse(cleanDate(news[i].created_at))+'", in_reply_to_status_id="'+news[i].in_reply_to_status_id+'", source="'+news[i].source+'", status_id="'+news[i].id+'", in_reply_to_user_id="'+news[i].in_reply_to_user_id+'", geo="'+news[i].geo+'", favorited="'+news[i].favorited+'", uid="'+news[i].user.id+'", statusnet_html="'+Qt.btoa(news[i].status_html)+'", statusnet_conversation_id="'+news[i].statusnet_conversation_id+'",friendica_activities="'+Qt.btoa(JSON.stringify(friendica_activities))+'",attachments="'+attachments+'",friendica_owner="'+news[i].friendica_owner.url+'" where username="'+login.username+'" AND status_id="'+news[i].status_id+'" AND messagetype=0');
|
||||
} else {// use insert
|
||||
result = tx.executeSql('INSERT INTO news (username,messagetype,text,created_at,in_reply_to_status_id,source,status_id,in_reply_to_user_id,geo,favorited,uid,statusnet_html,statusnet_conversation_id,friendica_activities,friendica_activities_self) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [login.username,0,Qt.btoa(news[i].text),Date.parse(cleanDate(news[i].created_at)), news[i].in_reply_to_status_id, news[i].source, news[i].id,news[i].in_reply_to_user_id,news[i].geo,news[i].favorited, news[i].user.id,Qt.btoa(news[i].statusnet_html),news[i].statusnet_conversation_id, JSON.stringify(friendica_activities),"[]"])}})
|
||||
result = tx.executeSql('INSERT INTO news (username,messagetype,text,created_at,in_reply_to_status_id,source,status_id,in_reply_to_user_id,geo,favorited,uid,statusnet_html,statusnet_conversation_id,friendica_activities,friendica_activities_self,attachments,friendica_owner) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [login.username,0,Qt.btoa(news[i].text),Date.parse(cleanDate(news[i].created_at)), news[i].in_reply_to_status_id, news[i].source, news[i].id,news[i].in_reply_to_user_id,news[i].geo,news[i].favorited, news[i].user.id,Qt.btoa(news[i].statusnet_html),news[i].statusnet_conversation_id, Qt.btoa(JSON.stringify(friendica_activities)),"[]",attachments,news[i].friendica_owner.url])}})
|
||||
}
|
||||
getDirectMessage(login,database,rootwindow,callback)
|
||||
}
|
||||
|
|
@ -164,12 +171,12 @@ function getNotifications(login,database,rootwindow,callback){
|
|||
})
|
||||
})}
|
||||
|
||||
function getActivitiesUserData(database,username,useridArray){
|
||||
function getActivitiesUserData(database,username,userUrlArray){//print(JSON.stringify(userUrlArray));
|
||||
var helpArray=[];
|
||||
for (var i=0;i<useridArray.length;i++){
|
||||
for (var i=0;i<userUrlArray.length;i++){
|
||||
Helperjs.readData(database,"contacts",username,function(userdata){
|
||||
helpArray.push(userdata[0]);
|
||||
},"id",useridArray[i]);
|
||||
},"url",userUrlArray[i]);
|
||||
}
|
||||
return helpArray
|
||||
}
|
||||
|
|
@ -183,29 +190,17 @@ function newsfromdb(database,username,callback,contact,stop_time){
|
|||
stop="<="+rs.rows.item(0).created_at}catch(e){stop="<99999999999999"}}
|
||||
else{var stop="<"+stop_time}
|
||||
var contactfilter="";if(contact){contactfilter=" AND uid='"+contact+"'"}
|
||||
print('select * from news WHERE username="'+username+'" AND created_at'+stop+contactfilter+' ORDER BY created_at DESC LIMIT 20');
|
||||
//print('select * from news WHERE username="'+username+'" AND created_at'+stop+contactfilter+' ORDER BY created_at DESC LIMIT 20');
|
||||
var newsrs=tx.executeSql('select * from news WHERE username="'+username+'" AND created_at'+stop+contactfilter+' ORDER BY created_at DESC LIMIT 20');
|
||||
var newsArray=[];
|
||||
for(var i = 0; i < newsrs.rows.length; i++) {
|
||||
newsArray.push(newsrs.rows.item(i));
|
||||
Helperjs.readData(database,"contacts",username,function(userdata){
|
||||
newsArray[i].user=userdata[0];
|
||||
},"id",newsArray[i].uid);
|
||||
if(newsArray[i].in_reply_to_user_id){
|
||||
Helperjs.readData(database,"contacts",username,function(replytodata){
|
||||
newsArray[i].reply_user=replytodata[0];
|
||||
},"id",newsArray[i].in_reply_to_user_id);
|
||||
}
|
||||
if (newsArray[i].messagetype==0){
|
||||
for(var j=0;j<newsArray[i].friendica_activities.length;j++){
|
||||
newsArray[i]=fetchUsersForNews(database,username,newsArray[i])
|
||||
}
|
||||
}
|
||||
newsArray[i]=fetchUsersForNews(database,username,newsArray[i])
|
||||
}
|
||||
callback(newsArray)});
|
||||
}
|
||||
|
||||
function fetchUsersForNews(database,username,news){
|
||||
function fetchUsersForNews(database,username,news){//print(JSON.stringify(news))
|
||||
Helperjs.readData(database,"contacts",username,function(userdata){
|
||||
news.user=userdata[0];
|
||||
//print("Fetch user"+JSON.stringify(news.user));
|
||||
|
|
@ -218,7 +213,7 @@ function fetchUsersForNews(database,username,news){
|
|||
}
|
||||
if (news.messagetype==0){
|
||||
for(var j=0;j<news.friendica_activities.length;j++)
|
||||
{var friendicaArray=JSON.parse(news.friendica_activities);
|
||||
{var friendicaArray=JSON.parse(Qt.atob(news.friendica_activities));
|
||||
// print("Array: "+friendicaArray[1]);
|
||||
news.like=getActivitiesUserData(database,username,friendicaArray[0]);
|
||||
news.dislike=getActivitiesUserData(database,username,friendicaArray[1]);
|
||||
|
|
@ -226,6 +221,10 @@ function fetchUsersForNews(database,username,news){
|
|||
news.attendno=getActivitiesUserData(database,username,friendicaArray[3]);
|
||||
news.attendmaybe=getActivitiesUserData(database,username,friendicaArray[4]);
|
||||
}
|
||||
Helperjs.readData(database,"contacts",username,function(friendica_owner_data){
|
||||
news.friendica_owner_object=friendica_owner_data[0];
|
||||
//print("Fetch friendica_owner"+JSON.stringify(news.friendica_owner));
|
||||
},"url",news.friendica_owner);
|
||||
}
|
||||
return news
|
||||
}
|
||||
|
|
@ -275,7 +274,7 @@ function likerequest(login,database,verb,newsid,rootwindow){
|
|||
}
|
||||
if (verb=="unlike"){ if (currentActivities.indexOf(1)!=-1){currentActivities.splice(currentActivities.indexOf(1),1)}}
|
||||
if (verb=="undislike"){ if (currentActivities.indexOf(2)!=-1){currentActivities.splice(currentActivities.indexOf(2),1)}}
|
||||
print(JSON.stringify(currentActivities));
|
||||
//print(JSON.stringify(currentActivities));
|
||||
var result = tx.executeSql('UPDATE news SET friendica_activities_self ="'+JSON.stringify(currentActivities)+'" where username="'+login.username+'" AND status_id ='+newsid);
|
||||
})}
|
||||
else{print("likerequest"+obj)}})
|
||||
|
|
@ -302,7 +301,7 @@ function attend(login,database,attend,newsid,rootwindow,callback){
|
|||
currentActivities.push(3);
|
||||
if (currentActivities.indexOf(4)!=-1){currentActivities.splice(currentActivities.indexOf(4),1)}
|
||||
if (currentActivities.indexOf(5)!=-1){currentActivities.splice(currentActivities.indexOf(5),1)}
|
||||
print(JSON.stringify(currentActivities));
|
||||
//print(JSON.stringify(currentActivities));
|
||||
}
|
||||
if ((attend=="no")&&(currentActivities.indexOf(4)==-1)){
|
||||
currentActivities.push(4);
|
||||
|
|
@ -4,13 +4,14 @@ WorkerScript.onMessage = function(msg) {
|
|||
for (var j=0;j<msg.news.length;j++){
|
||||
if (msg.news[j]) {
|
||||
var newsitemobject=msg.news[j];
|
||||
//print("Newsitem"+JSON.stringify(newsitemobject.friendica_activities_self));
|
||||
//print("Newsitem"+JSON.stringify(newsitemobject.friendica_owner+" userid: "+newsitemobject.user.id));
|
||||
if (newsitemobject.messagetype==2){
|
||||
newsitemobject.user={};
|
||||
newsitemobject.user.profile_image="";
|
||||
newsitemobject.user.profile_image_url="";
|
||||
newsitemobject.user.name="";
|
||||
}
|
||||
//var forumname="";if (newsitemobject.messagetype==0&&(parseInt(newsitemobject.friendica_owner)!=parseInt(newsitemobject.user.id))){forumname=" via "+newsitemobject.friendica_owner_object.name}
|
||||
var likeText="";var dislikeText="";var attendyesText="";var attendnoText="";var attendmaybeText=""; var self={};
|
||||
if (newsitemobject.messagetype==0){
|
||||
if (newsitemobject.like.length>0){
|
||||
|
|
@ -117,8 +117,8 @@ function initDatabase(database) { // initialize the database object
|
|||
print('initDatabase()'+database[0]+database[1]+database[2]+database[3])
|
||||
db.transaction( function(tx) {
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS imageData(username TEXT,id INT, created TEXT,edited TEXT, title TEXT, desc TEXT, album TEXT,filename TEXT, type TEXT, height INT, width INT, profile INT, link TEXT,location TEXT)');
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS config(server TEXT, username TEXT, password TEXT, imagestore TEXT, maxnews INT, timerInterval INT, newsViewType TEXT,isActive INT, permissions TEXT,maxContactAge INT,APIVersion TEXT)');
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS news(username TEXT, messagetype INT, text TEXT, created_at INT, in_reply_to_status_id INT, source TEXT, status_id INT, in_reply_to_user_id INT, geo TEXT,favorited TEXT, uid INT, statusnet_html TEXT, statusnet_conversation_id TEXT,friendica_activities TEXT, friendica_activities_self TEXT)');
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS config(server TEXT, username TEXT, password TEXT, imagestore TEXT, maxnews INT, timerInterval INT, newsViewType TEXT,isActive INT, permissions TEXT,maxContactAge INT,APIVersion TEXT,layout TEXT, addons TEXT)');
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS news(username TEXT, messagetype INT, text TEXT, created_at INT, in_reply_to_status_id INT, source TEXT, status_id INT, in_reply_to_user_id INT, geo TEXT,favorited TEXT, uid INT, statusnet_html TEXT, statusnet_conversation_id TEXT,friendica_activities TEXT, friendica_activities_self TEXT, attachments TEXT, friendica_owner INT)');
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS contacts(username TEXT, id INT, name TEXT, screen_name TEXT, location TEXT,imageAge INT, profile_image_url TEXT, description TEXT, profile_image BLOB, url TEXT, protected TEXT, followers_count INT, friends_count INT, created_at INT, favourites_count TEXT, utc_offset TEXT, time_zone TEXT, statuses_count INT, following TEXT, verified TEXT, statusnet_blocking TEXT, notifications TEXT, statusnet_profile_url TEXT, cid INT, network TEXT, isFriend INT)');
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS groups(username TEXT, groupname TEXT, gid INT, members TEXT)');
|
||||
})}
|
||||
|
|
@ -134,13 +134,14 @@ function savePermissions(database,obj) { // stores config to DB
|
|||
function storeConfig(database,obj) { // stores config to DB
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
db.transaction( function(tx) {
|
||||
//print(JSON.stringify(obj));
|
||||
var result = tx.executeSql('SELECT * from config WHERE username="'+obj.username+'"');
|
||||
if(result.rows.length === 1) {// use update
|
||||
var result2 = tx.executeSql('UPDATE config SET server="'+obj.server+'",password="'+obj.password+'", imagestore="'+obj.imagestore+'", maxnews="+obj.maxnews+",newsViewType="'+obj.newsViewType+'", isActive=0 WHERE username="'+obj.username +'"');
|
||||
var result2 = tx.executeSql('UPDATE config SET server="'+obj.server+'",password="'+obj.password+'", imagestore="'+obj.imagestore+'", maxnews='+obj.maxnews+', timerInterval='+obj.interval+', newsViewType="'+obj.newsViewType+'", isActive=0 WHERE username="'+obj.username +'"');
|
||||
var result3 = tx.executeSql('UPDATE config SET isActive=1 WHERE username !="'+obj.username +'"');
|
||||
var result4 = tx.executeSql('UPDATE config SET maxnews='+obj.maxnews);
|
||||
} else {// use insert print('... does not exists, create it')
|
||||
var result2 = tx.executeSql('INSERT INTO config VALUES (?,?,?,?,?,?,?,?,?,?,?)', [obj.server, obj.username, obj.password, obj.imagestore, obj.maxnews, 0,obj.newsViewType,0,"[[],[],[],[]]",0,""]);
|
||||
var result2 = tx.executeSql('INSERT INTO config VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)', [obj.server, obj.username, obj.password, obj.imagestore, obj.maxnews, obj.interval,obj.newsViewType,0,"[[],[],[],[]]",0,"","",""]);
|
||||
var result3 = tx.executeSql('UPDATE config SET isActive=1 WHERE username !="'+obj.username +'"');
|
||||
var result4 = tx.executeSql('UPDATE config SET maxnews='+obj.maxnews);
|
||||
}
|
||||
|
|
@ -156,12 +157,17 @@ try {Helperjs.friendicaRequest(login,"/api/statusnet/config",rootwindow, functio
|
|||
"\nFriendica version: "+serverconfig.site.friendica.FRIENDICA_VERSION+"\nDFRN version: "+serverconfig.site.friendica.DFRN_PROTOCOL_VERSION +
|
||||
"\nDB Update version: "+serverconfig.site.friendica.DB_UPDATE_VERSION+"'}";
|
||||
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
db.transaction( function(tx) {
|
||||
var result = tx.executeSql('UPDATE config SET APIVersion="'+ serverconfig.site.friendica.FRIENDICA_VERSION+'" WHERE username="'+login.username +'"')})
|
||||
|
||||
callback(serverconfigString);
|
||||
})}
|
||||
Helperjs.friendicaRequest(login,"/friendica/json",rootwindow, function (obj){
|
||||
var serverData = JSON.parse(obj);var serverAddons=JSON.stringify(serverData.plugins).replace(/"/g,"");
|
||||
db.transaction( function(tx) {
|
||||
var result = tx.executeSql('UPDATE config SET addons="'+ serverAddons+'" WHERE username="'+login.username +'"')})
|
||||
|
||||
callback(serverconfigString);
|
||||
})})}
|
||||
catch (e){callback (e);
|
||||
}}
|
||||
|
||||
|
|
@ -177,7 +183,7 @@ function readConfig(database,callback,filter,filtervalue) { // reads config
|
|||
for(var i = 0; i < rs.rows.length; i++) {
|
||||
rsArray.push(rs.rows.item(i))
|
||||
}
|
||||
var rsObject={server:rsArray[0].server,username:rsArray[0].username, password:rsArray[0].password,imagestore:rsArray[0].imagestore,maxnews:rsArray[0].maxnews,isActive:rsArray[0].isActive,timerInterval:rsArray[0].timerInterval, newsViewType:rsArray[0].newsViewType,permissions:JSON.parse(rsArray[0].permissions),maxContactAge:rsArray[0].maxContactAge,APIVersion:rsArray[0].APIVersion};
|
||||
var rsObject={server:rsArray[0].server,username:rsArray[0].username, password:rsArray[0].password,imagestore:rsArray[0].imagestore,maxnews:rsArray[0].maxnews,isActive:rsArray[0].isActive,timerInterval:rsArray[0].timerInterval, newsViewType:rsArray[0].newsViewType,permissions:JSON.parse(rsArray[0].permissions),maxContactAge:rsArray[0].maxContactAge,APIVersion:rsArray[0].APIVersion,addons:rsArray[0].addons};
|
||||
} else {var rsObject=""}
|
||||
callback(rsObject)}}
|
||||
)
|
||||
|
|
@ -252,8 +258,9 @@ function processNews(callback){
|
|||
}
|
||||
|
||||
function updateContactInDB(login,database,isFriend,contact){// for newstab and friendstab
|
||||
var suffix=contact.profile_image_url.substring(contact.profile_image_url.lastIndexOf("."), contact.profile_image_url.length);
|
||||
var imagename=login.imagestore+"contacts/"+contact.screen_name.trim()+suffix;
|
||||
// var suffix=contact.profile_image_url.substring(contact.profile_image_url.lastIndexOf("."), contact.profile_image_url.length);
|
||||
// var imagename=login.imagestore+"contacts/"+contact.screen_name.trim()+suffix;
|
||||
var imagename=login.imagestore+"contacts/"+contact.screen_name+"-"+contact.profile_image_url.substring(contact.profile_image_url.lastIndexOf("/")+1, contact.profile_image_url.length);
|
||||
contacttimer.restart();
|
||||
var currentTime=Date.now();
|
||||
xhr.setUrl(Qt.resolvedUrl(contact.profile_image_url));
|
||||
|
|
@ -263,9 +270,9 @@ function updateContactInDB(login,database,isFriend,contact){// for newstab and f
|
|||
var db=Sql.LocalStorage.openDatabaseSync(database[0],database[1],database[2],database[3]);
|
||||
var result;
|
||||
db.transaction( function(tx) {
|
||||
result = tx.executeSql('SELECT * from contacts where username="'+root.login.username+'" AND id = '+contact.id); // check for news id
|
||||
result = tx.executeSql('SELECT * from contacts where username="'+login.username+'" AND url = "'+contact.url+'"'); // check for news url
|
||||
if(result.rows.length === 1) {// use update
|
||||
result = tx.executeSql('UPDATE contacts SET username="'+login.username+'", id='+contact.id+', name="'+Qt.btoa(contact.name)+'", screen_name="'+contact.screen_name+'", location="'+contact.location+'",imageAge='+currentTime+', profile_image_url="'+contact.profile_image_url+'", description="'+Qt.btoa(contact.description)+'", profile_image="'+imagename+'", url="'+contact.url+'" , protected="'+contact.protected+'", followers_count='+contact.followers_count+', friends_count='+contact.friends_count+', created_at="'+ Date.parse(Newsjs.cleanDate(contact.created_at))+'", favourites_count="'+contact.favorites_count+'", utc_offset="'+contact.utc_offset+'", time_zone="'+contact.time_zone+'", statuses_count='+contact.statuses_count+', following="'+contact.following+'", verified ="'+contact.verified+'", statusnet_blocking="'+contact.statusnet_blocking+'", notifications="'+contact.notifictions+'", statusnet_profile_url="'+contact.statusnet_profile_url+'", cid='+contact.cid+', network="'+contact.network+'", isFriend='+isFriend+' where username="'+root.login.username+'" AND id='+contact.id);
|
||||
result = tx.executeSql('UPDATE contacts SET id='+contact.id+', name="'+Qt.btoa(contact.name)+'", screen_name="'+contact.screen_name+'", location="'+contact.location+'",imageAge='+currentTime+', profile_image_url="'+contact.profile_image_url+'", description="'+Qt.btoa(contact.description)+'", profile_image="'+imagename+'", protected="'+contact.protected+'", followers_count='+contact.followers_count+', friends_count='+contact.friends_count+', created_at="'+ Date.parse(Newsjs.cleanDate(contact.created_at))+'", favourites_count="'+contact.favorites_count+'", utc_offset="'+contact.utc_offset+'", time_zone="'+contact.time_zone+'", statuses_count='+contact.statuses_count+', following="'+contact.following+'", verified ="'+contact.verified+'", statusnet_blocking="'+contact.statusnet_blocking+'", notifications="'+contact.notifictions+'", statusnet_profile_url="'+contact.statusnet_profile_url+'", cid='+contact.cid+', network="'+contact.network+'", isFriend='+isFriend+' where username="'+login.username+'" AND url="'+contact.url+'"');
|
||||
} else {// use insert
|
||||
result = tx.executeSql('INSERT INTO contacts VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [login.username,contact.id,Qt.btoa(contact.name),contact.screen_name,contact.location,currentTime,contact.profile_image_url, Qt.btoa(contact.description),imagename,contact.url,contact.protected,contact.followers_count, contact.friends_count,Date.parse(Newsjs.cleanDate(contact.created_at)),contact.favorites_count,contact.utc_offset,contact.time_zone,contact.statuses_count,contact.following,contact.verfied,contact.statusnet_blocking,contact.notifications,contact.statusnet_profile_url,contact.cid,contact.network,isFriend]);}
|
||||
});
|
||||
553
source-android/js/smiley.js
Normal file
|
|
@ -0,0 +1,553 @@
|
|||
|
||||
var core=[
|
||||
{name:'<3',url:
|
||||
'qrc:///images/smileys/core/smiley-heart.gif'},
|
||||
|
||||
{name:'</3',url:
|
||||
'qrc:///images/smileys/core/smiley-brokenheart.gif'},
|
||||
|
||||
{name:':-)',url:
|
||||
'qrc:///images/smileys/core/smiley-smile.gif'},
|
||||
|
||||
{name:';-)',url:
|
||||
'qrc:///images/smileys/core/smiley-wink.gif'},
|
||||
|
||||
{name:':-(',url:
|
||||
'qrc:///images/smileys/core/smiley-frown.gif'},
|
||||
|
||||
{name:':-P',url:
|
||||
'qrc:///images/smileys/core/smiley-tongue-out.gif'},
|
||||
|
||||
{name:':-X',url:
|
||||
'qrc:///images/smileys/core/smiley-kiss.gif'},
|
||||
|
||||
{name:':-D',url:
|
||||
'qrc:///images/smileys/core/smiley-laughing.gif'},
|
||||
|
||||
{name:':-O',url:
|
||||
'qrc:///images/smileys/core/smiley-surprised.gif'},
|
||||
|
||||
{name:'\\o/',url:
|
||||
'qrc:///images/smileys/core/smiley-thumbsup.gif'},
|
||||
|
||||
{name:'o.O',url:
|
||||
'qrc:///images/smileys/core/smiley-Oo.gif'},
|
||||
|
||||
{name:":'(",url:
|
||||
'qrc:///images/smileys/core/smiley-cry.gif'},
|
||||
|
||||
{name:":-!",url:
|
||||
'qrc:///images/smileys/core/smiley-foot-in-mouth.gif'},
|
||||
|
||||
{name:":-/",url:
|
||||
'qrc:///images/smileys/core/smiley-undecided.gif'},
|
||||
|
||||
{name:":-[",url:
|
||||
'qrc:///images/smileys/core/smiley-embarassed.gif'},
|
||||
|
||||
{name:"8-)",url:
|
||||
'qrc:///images/smileys/core/smiley-cool.gif'},
|
||||
|
||||
{name:':beer',url:
|
||||
'qrc:///images/smileys/core/beer_mug.gif'},
|
||||
|
||||
{name:':coffee',url:
|
||||
'qrc:///images/smileys/core/coffee.gif'},
|
||||
|
||||
{name:':facepalm',url:
|
||||
'qrc:///images/smileys/core/smiley-facepalm.gif'},
|
||||
|
||||
{name:':like',url:
|
||||
'qrc:///images/smileys/core/like.gif'},
|
||||
|
||||
{name:':dislike',url:
|
||||
'qrc:///images/smileys/core/dislike.gif'},
|
||||
|
||||
{name:'~friendica',url:
|
||||
'qrc:///images/smileys/core/friendica-16.png'},
|
||||
|
||||
{name:'red#',url:
|
||||
'qrc:///images/smileys/core/rm-16.png'}
|
||||
]
|
||||
|
||||
|
||||
var addon=[
|
||||
{name:':bunnyflowers',url:
|
||||
'qrc:///images/smileys/animals/bunnyflowers.gif'},
|
||||
|
||||
{name:':chick',url:
|
||||
'qrc:///images/smileys/animals/chick.gif'},
|
||||
|
||||
{name:':bumblebee',url:
|
||||
'qrc:///images/smileys/animals/bee.gif'},
|
||||
|
||||
{name:':ladybird',url:
|
||||
'qrc:///images/smileys/animals/ladybird.gif'},
|
||||
|
||||
{name:':bigspider',url:
|
||||
'qrc:///images/smileys/animals/bigspider.gif' },
|
||||
|
||||
{name:':cat',url:
|
||||
'qrc:///images/smileys/animals/cat.gif'},
|
||||
|
||||
{name:':bunny',url:
|
||||
'qrc:///images/smileys/animals/bunny.gif' },
|
||||
|
||||
{name:':cow',url:
|
||||
'qrc:///images/smileys/animals/cow.gif' },
|
||||
|
||||
{name:':crab',url:
|
||||
'qrc:///images/smileys/animals/crab.gif' },
|
||||
|
||||
{name:':dolphin',url:
|
||||
'qrc:///images/smileys/animals/dolphin.gif' },
|
||||
|
||||
{name:':dragonfly',url:
|
||||
'qrc:///images/smileys/animals/dragonfly.gif' },
|
||||
|
||||
{name:':frog',url:
|
||||
'qrc:///images/smileys/animals/frog.gif'},
|
||||
|
||||
{name:':hamster',url:
|
||||
'qrc:///images/smileys/animals/hamster.gif' },
|
||||
|
||||
{name:':monkey',url:
|
||||
'qrc:///images/smileys/animals/monkey.gif' },
|
||||
|
||||
{name:':horse',url:
|
||||
'qrc:///images/smileys/animals/horse.gif' },
|
||||
|
||||
{name:':parrot',url:
|
||||
'qrc:///images/smileys/animals/parrot.gif' },
|
||||
|
||||
{name:':tux',url:
|
||||
'qrc:///images/smileys/animals/tux.gif' },
|
||||
|
||||
{name:':snail',url:
|
||||
'qrc:///images/smileys/animals/snail.gif' },
|
||||
|
||||
{name:':sheep',url:
|
||||
'qrc:///images/smileys/animals/sheep.gif' },
|
||||
|
||||
{name:':dog',url:
|
||||
'qrc:///images/smileys/animals/dog.gif'},
|
||||
|
||||
{name:':elephant',url:
|
||||
'qrc:///images/smileys/animals/elephant.gif' },
|
||||
|
||||
{name:':fish',url:
|
||||
'qrc:///images/smileys/animals/fish.gif' },
|
||||
|
||||
{name:':giraffe',url:
|
||||
'qrc:///images/smileys/animals/giraffe.gif' },
|
||||
|
||||
{name:':pig',url:
|
||||
'qrc:///images/smileys/animals/pig.gif'},
|
||||
|
||||
//Baby
|
||||
|
||||
{name:':baby',url:
|
||||
'qrc:///images/smileys/babies/baby.gif' },
|
||||
|
||||
{name:':babycot',url:
|
||||
'qrc:///images/smileys/babies/babycot.gif' },
|
||||
|
||||
|
||||
{name:':pregnant',url:
|
||||
'qrc:///images/smileys/babies/pregnant.gif' },
|
||||
|
||||
{name:':stork',url:
|
||||
'qrc:///images/smileys/babies/stork.gif' },
|
||||
|
||||
|
||||
//Confused
|
||||
{name:':confused',url:
|
||||
'qrc:///images/smileys/confused/confused.gif' },
|
||||
|
||||
{name:':shrug',url:
|
||||
'qrc:///images/smileys/confused/shrug.gif' },
|
||||
|
||||
{name:':stupid',url:
|
||||
'qrc:///images/smileys/confused/stupid.gif' },
|
||||
|
||||
{name:':dazed',url:
|
||||
'qrc:///images/smileys/confused/dazed.gif' },
|
||||
//Cool 'qrc:///images/smileys
|
||||
|
||||
{name:':affro',url:
|
||||
'qrc:///images/smileys/cool/affro.gif'},
|
||||
|
||||
//Devil/Angel
|
||||
|
||||
{name:':angel',url:
|
||||
'qrc:///images/smileys/devilangel/angel.gif'},
|
||||
|
||||
{name:':cherub',url:
|
||||
'qrc:///images/smileys/devilangel/cherub.gif'},
|
||||
|
||||
{name:':devilangel',url:
|
||||
'qrc:///images/smileys/devilangel/blondedevil.gif' },
|
||||
{name:':catdevil',url:
|
||||
'qrc:///images/smileys/devilangel/catdevil.gif'},
|
||||
|
||||
{name:':devillish',url:
|
||||
'qrc:///images/smileys/devilangel/devil.gif'},
|
||||
|
||||
{name:':daseesaw',url:
|
||||
'qrc:///images/smileys/devilangel/daseesaw.gif'},
|
||||
|
||||
{name:':turnevil',url:
|
||||
'qrc:///images/smileys/devilangel/turnevil.gif' },
|
||||
|
||||
{name:':saint',url:
|
||||
'qrc:///images/smileys/devilangel/saint.gif'},
|
||||
|
||||
{name:':graveside',url:
|
||||
'qrc:///images/smileys/devilangel/graveside.gif'},
|
||||
|
||||
//Unpleasent
|
||||
|
||||
{name:':toilet',url:
|
||||
'qrc:///images/smileys/disgust/toilet.gif'},
|
||||
|
||||
{name:':fartinbed',url:
|
||||
'qrc:///images/smileys/disgust/fartinbed.gif' },
|
||||
|
||||
{name:':fartblush',url:
|
||||
'qrc:///images/smileys/disgust/fartblush.gif' },
|
||||
|
||||
//Drinks
|
||||
|
||||
{name:':tea',url:
|
||||
'qrc:///images/smileys/drink/tea.gif' },
|
||||
|
||||
{name:':drool',url:
|
||||
'qrc:///images/smileys/drool/drool.gif'},
|
||||
|
||||
//Sad
|
||||
|
||||
{name:':crying',url:
|
||||
'qrc:///images/smileys/sad/crying.png'},
|
||||
|
||||
{name:':prisoner',url:
|
||||
'qrc:///images/smileys/sad/prisoner.gif' },
|
||||
|
||||
{name:':sigh',url:
|
||||
'qrc:///images/smileys/sad/sigh.gif'},
|
||||
|
||||
//Smoking - only one smiley in here, maybe it needs moving elsewhere?
|
||||
|
||||
{name:':smoking',url:
|
||||
'qrc:///images/smileys/smoking/smoking.gif'},
|
||||
|
||||
//Sport
|
||||
|
||||
{name:':basketball',url:
|
||||
'qrc:///images/smileys/sport/basketball.gif'},
|
||||
|
||||
{name:':bowling',url:
|
||||
'qrc:///images/smileys/sport/bowling.gif'},
|
||||
|
||||
{name:':cycling',url:
|
||||
'qrc:///images/smileys/sport/cycling.gif'},
|
||||
|
||||
{name:':darts',url:
|
||||
'qrc:///images/smileys/sport/darts.gif'},
|
||||
|
||||
{name:':fencing',url:
|
||||
'qrc:///images/smileys/sport/fencing.gif' },
|
||||
|
||||
{name:':juggling',url:
|
||||
'qrc:///images/smileys/sport/juggling.gif'},
|
||||
|
||||
{name:':skipping',url:
|
||||
'qrc:///images/smileys/sport/skipping.gif'},
|
||||
|
||||
{name:':archery',url:
|
||||
'qrc:///images/smileys/sport/archery.gif'},
|
||||
|
||||
{name:':surfing',url:
|
||||
'qrc:///images/smileys/sport/surfing.gif' },
|
||||
|
||||
{name:':snooker',url:
|
||||
'qrc:///images/smileys/sport/snooker.gif' },
|
||||
|
||||
{name:':horseriding',url:
|
||||
'qrc:///images/smileys/sport/horseriding.gif'},
|
||||
|
||||
//Love
|
||||
|
||||
{name:':iloveyou',url:
|
||||
'qrc:///images/smileys/love/iloveyou.gif'},
|
||||
|
||||
{name:':inlove',url:
|
||||
'qrc:///images/smileys/love/inlove.gif'},
|
||||
|
||||
{name:':~love',url:
|
||||
'qrc:///images/smileys/love/love.gif' },
|
||||
|
||||
{name:':lovebear',url:
|
||||
'qrc:///images/smileys/love/lovebear.gif'},
|
||||
|
||||
{name:':lovebed',url:
|
||||
'qrc:///images/smileys/love/lovebed.gif' },
|
||||
|
||||
{name:':loveheart',url:
|
||||
'qrc:///images/smileys/love/loveheart.gif' },
|
||||
|
||||
//Tired/Sleep
|
||||
|
||||
{name:':countsheep',url:
|
||||
'qrc:///images/smileys/tired/countsheep.gif' },
|
||||
|
||||
{name:':hammock',url:
|
||||
'qrc:///images/smileys/tired/hammock.gif'},
|
||||
|
||||
{name:':pillow',url:
|
||||
'qrc:///images/smileys/tired/pillow.gif' },
|
||||
|
||||
{name:':yawn',url:
|
||||
'qrc:///images/smileys/tired/yawn.gif'},
|
||||
|
||||
//Fight/Flame/Violent
|
||||
|
||||
{name:':2guns',url:
|
||||
'qrc:///images/smileys/fight/2guns.gif' },
|
||||
|
||||
{name:':alienfight',url:
|
||||
'qrc:///images/smileys/fight/alienfight.gif' },
|
||||
|
||||
{name:':army',url:
|
||||
'qrc:///images/smileys/fight/army.gif'},
|
||||
|
||||
{name:':arrowhead',url:
|
||||
'qrc:///images/smileys/fight/arrowhead.gif'},
|
||||
|
||||
{name:':bfg',url:
|
||||
'qrc:///images/smileys/fight/bfg.gif' },
|
||||
|
||||
{name:':bowman',url:
|
||||
'qrc:///images/smileys/fight/bowman.gif' },
|
||||
|
||||
{name:':chainsaw',url:
|
||||
'qrc:///images/smileys/fight/chainsaw.gif'},
|
||||
|
||||
{name:':crossbow',url:
|
||||
'qrc:///images/smileys/fight/crossbow.gif'},
|
||||
|
||||
{name:':crusader',url:
|
||||
'qrc:///images/smileys/fight/crusader.gif' },
|
||||
|
||||
{name:':dead',url:
|
||||
'qrc:///images/smileys/fight/dead.gif' },
|
||||
|
||||
{name:':hammersplat',url:
|
||||
'qrc:///images/smileys/fight/hammersplat.gif' },
|
||||
|
||||
{name:':lasergun',url:
|
||||
'qrc:///images/smileys/fight/lasergun.gif' },
|
||||
|
||||
{name:':machinegun',url:
|
||||
'qrc:///images/smileys/fight/machinegun.gif' },
|
||||
|
||||
{name:':acid',url:
|
||||
'qrc:///images/smileys/fight/acid.gif' },
|
||||
|
||||
//Fantasy - monsters and dragons fantasy. The other type of fantasy belongs in adult
|
||||
|
||||
{name:':alienmonster',url:
|
||||
'qrc:///images/smileys/fantasy/alienmonster.gif' },
|
||||
|
||||
{name:':barbarian',url:
|
||||
'qrc:///images/smileys/fantasy/barbarian.gif' },
|
||||
|
||||
{name:':dinosaur',url:
|
||||
'qrc:///images/smileys/fantasy/dinosaur.gif'},
|
||||
|
||||
{name:':dragon',url:
|
||||
'qrc:///images/smileys/fantasy/dragon.gif'},
|
||||
|
||||
{name:':draco',url:
|
||||
'qrc:///images/smileys/fantasy/dragonwhelp.gif'},
|
||||
|
||||
{name:':ghost',url:
|
||||
'qrc:///images/smileys/fantasy/ghost.gif'},
|
||||
|
||||
{name:':mummy',url:
|
||||
'qrc:///images/smileys/fantasy/mummy.gif'},
|
||||
|
||||
//Food
|
||||
|
||||
{name:':apple',url:
|
||||
'qrc:///images/smileys/food/apple.gif' },
|
||||
|
||||
{name:':broccoli',url:
|
||||
'qrc:///images/smileys/food/broccoli.gif' },
|
||||
|
||||
{name:':cake',url:
|
||||
'qrc:///images/smileys/food/cake.gif'},
|
||||
|
||||
{name:':carrot',url:
|
||||
'qrc:///images/smileys/food/carrot.gif' },
|
||||
|
||||
{name:':popcorn',url:
|
||||
'qrc:///images/smileys/food/popcorn.gif'},
|
||||
|
||||
{name:':tomato',url:
|
||||
'qrc:///images/smileys/food/tomato.gif'},
|
||||
|
||||
{name:':banana',url:
|
||||
'qrc:///images/smileys/food/banana.gif'},
|
||||
|
||||
{name:':cooking',url:
|
||||
'qrc:///images/smileys/food/cooking.gif'},
|
||||
|
||||
{name:':fryegg',url:
|
||||
'qrc:///images/smileys/food/fryegg.gif'},
|
||||
|
||||
{name:':birthdaycake',url:
|
||||
'qrc:///images/smileys/food/birthdaycake.gif'},
|
||||
|
||||
//Happy
|
||||
|
||||
{name:':cloud9',url:
|
||||
'qrc:///images/smileys/happy/cloud9.gif'},
|
||||
|
||||
{name:':tearsofjoy',url:
|
||||
'qrc:///images/smileys/happy/tearsofjoy.gif' },
|
||||
|
||||
//Repsect
|
||||
|
||||
{name:':bow',url:
|
||||
'qrc:///images/smileys/respect/bow.gif'},
|
||||
|
||||
{name:':bravo',url:
|
||||
'qrc:///images/smileys/respect/bravo.gif'},
|
||||
|
||||
{name:':hailking',url:
|
||||
'qrc:///images/smileys/respect/hailking.gif'},
|
||||
|
||||
{name:':number1',url:
|
||||
'qrc:///images/smileys/respect/number1.gif' },
|
||||
|
||||
//Laugh
|
||||
|
||||
{name:':hahaha',url:
|
||||
'qrc:///images/smileys/laugh/hahaha.gif'},
|
||||
|
||||
{name:':loltv',url:
|
||||
'qrc:///images/smileys/laugh/loltv.gif' },
|
||||
|
||||
{name:':rofl',url:
|
||||
'qrc:///images/smileys/laugh/rofl.gif'},
|
||||
|
||||
//Music
|
||||
|
||||
{name:':drums',url:
|
||||
'qrc:///images/smileys/music/drums.gif'},
|
||||
|
||||
|
||||
{name:':guitar',url:
|
||||
'qrc:///images/smileys/music/guitar.gif'},
|
||||
|
||||
{name:':trumpet',url:
|
||||
'qrc:///images/smileys/music/trumpet.gif' },
|
||||
|
||||
//smileys that used to be in core
|
||||
|
||||
{name:':headbang',url:
|
||||
'qrc:///images/smileys/oldcore/headbang.gif'},
|
||||
|
||||
{name:':beard',url:
|
||||
'qrc:///images/smileys/oldcore/beard.png'},
|
||||
|
||||
{name:':whitebeard',url:
|
||||
'qrc:///images/smileys/oldcore/whitebeard.png'},
|
||||
|
||||
{name:':shaka',url:
|
||||
'qrc:///images/smileys/oldcore/shaka.gif'},
|
||||
|
||||
{name:':\\.../',url:
|
||||
'qrc:///images/smileys/oldcore/shaka.gif'},
|
||||
|
||||
{name:':\\ooo/',url:
|
||||
'qrc:///images/smileys/oldcore/shaka.gif' },
|
||||
|
||||
{name:':headdesk',url:
|
||||
'qrc:///images/smileys/oldcore/headbang.gif' },
|
||||
|
||||
//These two are still in core, so oldcore isn't strictly right, but we don't want too many directories
|
||||
|
||||
{name:':-d',url:
|
||||
'qrc:///images/smileys/oldcore/laughing.gif'},
|
||||
|
||||
{name:':-o',url:
|
||||
'qrc:///images/smileys/oldcore/surprised.gif' },
|
||||
|
||||
// Regex killers - stick these at the bottom so they appear at the end of the English and
|
||||
// at the start of $OtherLanguage.
|
||||
|
||||
{name:':cool',url:
|
||||
'qrc:///images/smileys/cool/cool.gif' },
|
||||
|
||||
{name:':vomit',url:
|
||||
'qrc:///images/smileys/disgust/vomit.gif' },
|
||||
|
||||
{name:':golf',url:
|
||||
'qrc:///images/smileys/sport/golf.gif' },
|
||||
|
||||
{name:':football',url:
|
||||
'qrc:///images/smileys/sport/football.gif'},
|
||||
|
||||
{name:':tennis',url:
|
||||
'qrc:///images/smileys/sport/tennis.gif' },
|
||||
|
||||
{name:':alpha',url:
|
||||
'qrc:///images/smileys/fight/alpha.png' },
|
||||
|
||||
{name:':marine',url:
|
||||
'qrc:///images/smileys/fight/marine.gif' },
|
||||
|
||||
{name:':sabre',url:
|
||||
'qrc:///images/smileys/fight/sabre.gif' },
|
||||
|
||||
{name:':tank',url:
|
||||
'qrc:///images/smileys/fight/tank.gif' },
|
||||
|
||||
{name:':viking',url:
|
||||
'qrc:///images/smileys/fight/viking.gif' },
|
||||
|
||||
{name:':gangs',url:
|
||||
'qrc:///images/smileys/fight/gangs.gif' },
|
||||
|
||||
{name:':dj',url:
|
||||
'qrc:///images/smileys/music/dj.gif'},
|
||||
|
||||
{name:':elvis',url:
|
||||
'qrc:///images/smileys/music/elvis.gif'},
|
||||
|
||||
{name:':violin',url:
|
||||
'qrc:///images/smileys/music/violin.gif'},
|
||||
]
|
||||
|
||||
|
||||
var adult=[
|
||||
{
|
||||
name:'(o)(o) ',url:
|
||||
'qrc:///images/smileys/adult/tits.gif'},
|
||||
|
||||
{name:'(.)(.) ',url:
|
||||
'qrc:///images/smileys/adult/tits.gif'},
|
||||
|
||||
{name:':bong',url:
|
||||
'qrc:///images/smileys/adult/bong.gif'},
|
||||
|
||||
{name:':sperm',url:
|
||||
'qrc:///images/smileys/adult/sperm.gif'},
|
||||
|
||||
{name:':drunk',url:
|
||||
'qrc:///images/smileys/adult/drunk.gif'},
|
||||
|
||||
{name:':finger',url:
|
||||
'qrc:///images/smileys/adult/finger.gif'}
|
||||
]
|
||||