Merge pull request #1 from annando/removed-deprecated
Removed many deprecated addons
This commit is contained in:
commit
24444adef3
1647
appnet/AppDotNet.php
Normal file
1647
appnet/AppDotNet.php
Normal file
File diff suppressed because it is too large
Load diff
23
appnet/DigiCertHighAssuranceEVRootCA.pem
Normal file
23
appnet/DigiCertHighAssuranceEVRootCA.pem
Normal file
|
@ -0,0 +1,23 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
|
||||
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
|
||||
ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
|
||||
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
|
||||
LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
|
||||
RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
|
||||
+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
|
||||
PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
|
||||
xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
|
||||
Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
|
||||
hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
|
||||
EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
|
||||
MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
|
||||
FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
|
||||
nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
|
||||
eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
|
||||
hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
|
||||
Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
||||
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
||||
+OkuE6N36B9K
|
||||
-----END CERTIFICATE-----
|
15
appnet/README.md
Normal file
15
appnet/README.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
App.net Plugin
|
||||
==============
|
||||
|
||||
With this addon to friendica you can give your users the possibility to post their *public* messages to App.net and
|
||||
to import their timeline. The messages will be strapped their rich context and shortened to 256 characters length if
|
||||
necessary.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
If you have an developer account you can create an Application for all of your users at
|
||||
[https://account.app.net/developer/apps/](https://account.app.net/developer/apps/). Add the redirect uri
|
||||
"https://your.server.name/appnet/connect" (Replace "your.server.name" with the hostname of your server)
|
||||
|
||||
If you can't create an application (because you only have a free account) this addon still works, but your users have to create individual applications on their own.
|
29
appnet/appnet.css
Executable file
29
appnet/appnet.css
Executable file
|
@ -0,0 +1,29 @@
|
|||
#appnet-import-label, #appnet-disconnect-label, #appnet-token-label,
|
||||
#appnet-enable-label, #appnet-bydefault-label,
|
||||
#appnet-clientid-label, #appnet-clientsecret-label {
|
||||
float: left;
|
||||
width: 200px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#appnet-import, #appnet-disconnect, #appnet-token,
|
||||
#appnet-checkbox, #appnet-bydefault,
|
||||
#appnet-clientid, #appnet-clientsecret {
|
||||
float: left;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#appnet-submit {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
#appnet-avatar {
|
||||
float: left;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
padding: 2px;
|
||||
}
|
||||
#appnet-info-block {
|
||||
height: 52px;
|
||||
vertical-align: middle;
|
||||
}
|
1358
appnet/appnet.php
Normal file
1358
appnet/appnet.php
Normal file
File diff suppressed because it is too large
Load diff
62
appnet/clients.txt
Normal file
62
appnet/clients.txt
Normal file
|
@ -0,0 +1,62 @@
|
|||
PDvZfuW8zhzjwU8PF9KEzFbAcTn6T67U - http://wedge.natestedman.com - Wedge
|
||||
cRWp45kA49pQKtxsZQXdwTnyuU6jBwuA - http://tigerbears.com/felix - Felix
|
||||
ks4empDNRbXEAauk8BhLTdSvfEeAABvX - http://kiwi-app.net/ - Kiwi
|
||||
nxz5USfARxELsYVpfPJc3mYaX42USb2E - http://themodernink.com/portfolio/dash-for-app-net/ - Dash
|
||||
PvANLyCeaDjbMt6VCVWhKvUmgX6TxDXj - https://cauldron-app.herokuapp.com - Cauldron
|
||||
737a54nLCdLLutcs2VzhtNKGnnMrakc4 - http://riposteapp.net - Riposte
|
||||
j2TPZ4DyNa8GGhVUrTQJg9qWDw7t6fBn - http://blixt.io - Blixt
|
||||
5vL9wT7EU7NRgk3hXscWW8Q27D2rYJCP - http://dasdom.de/Dominik_Hauser_Development/hAppy.html - hAppy
|
||||
caYWDBvjwt2e9HWMm6qyKS6KcATHUkzQ - https://alpha.app.net - Alpha
|
||||
gM5cMMBD7JJ6xamnBTcbhzkDCnR7xAux - http://robinapp.net - Robin
|
||||
35UhKXbTqxmE7Hs427haVuRVB8FGzhtx - http://www.floodgap.com/software/texapp/ - Texapp
|
||||
QHhyYpuARCwurZdGuuR7zjDMHDRkwcKm - http://tapbots.com/software/netbot - Netbot for iOS
|
||||
xpFjFqgMv2BMtbHJZTFe7JRWsYJSUuHr - http://ferret.undiscoveredsoftware.com - Ferret
|
||||
SzuHyL9wQy2BN7DDnBvdXpZr9Ue5MHYd - http://appnetizens.com - Appnetizens
|
||||
C8NUX9JhL8uTW5EERQUTdXxWA3VQQ7Ft - http://dabr.eu/adn/ - Dabr - The Best Mobile Web Experience for App.net
|
||||
NMYk2JjsJErGuYrjztFqZTcfH6ewq4Vs - http://pilgrimagesoftware.com/products/yawp - Yawp
|
||||
nwpvwKVqxmEzZ6bEwkv53yaJABVj9ngQ - http://www.windowsphone.com/en-us/store/app/dotdot/dd4e94db-0e2a-4cfb-8c28-8b969e47c3c4 - DotDot
|
||||
f7AUb7Akar3WbnUWbpfkgUDAZF777tLT - http://treeview.us/ - TreeView
|
||||
qeqDYzScwCt6zprQTTByapLAHwm24Dgv - http://hashpan.com - #PAN
|
||||
DhUuGUGFnf9PrJmREsKtQDGB4tz3xUqL - http://chimp.li/ - Chimp
|
||||
bCyhhBHxCRRAPHJNcLXxxS2KWk4Jq8cg - https://bit.ly/1415pJs - Blue
|
||||
js4qF6UN4fwXTK87Ax9Bjf3DhEQuK5hA - https://pirati.ca - friendica
|
||||
QsqkRF7XkqnTyST8YPtJwbKt4v7cnk4u - http://kirbyapp.azurewebsites.net - Kirby
|
||||
3MTzAfxABSvAXxGs4878jd6ynDJShMKV - https://pastapp.net - Pastapp
|
||||
2JdaX6Ysmxb3UbfnGmHQwGxGWMM28q2P - http://ineedtojet.com/drift/ - Drift
|
||||
B58XbrGstDUXvSKxDTxV7FGSStH6vfJZ - http://alpha.jvimedia.org - alpha.jvimedia.org
|
||||
hFsCGArAjgJkYBHTHbZnUvzTmL4vaLHL - http://www.ayadn-app.net - Ayadn
|
||||
e6pkUJsErZQMpKSfEqH693Yw2r4JAkUx - http://shawnthroop.com/prose - Prose
|
||||
KgWW36vGe8LQPN696ftSUqdKUvjzuYqF - https://polls.abrah.am - Polls
|
||||
424RQtjWS96PQj2KzDzHStWdNazS4naL - http://bli.ms - BLI.MS
|
||||
Awm347m2hfLu2VZTYvmPq3FkMnXUtjvu - http://monkeystew.org - littlebit
|
||||
8uJC3sb9PT5AYgUj2DajfXa9WuFj7P3a - http://getstreamapp.net/ - Stream
|
||||
q6BSdP5DctemahG9EDZVAmCv2x2dbjZJ - https://github.com/appdotnet/adn-comments - App.net Comments
|
||||
GfhV6dxDc8pERRas7CmSPtpdqcXYQv8G - http://favd.net - Favd
|
||||
YEpw9MQ9XuBq587pFWDAVRPTsteLUhya - https://hootsuite.com - HootSuite for App.net
|
||||
zEKkE4JBYNjnarYvEwGZxvFq7zuhEfnU - http://grailbox.com/wry - Wry
|
||||
w98ZmPF4RSMuyrhPzNHrJBVm89GNmGnJ - http://www.tweetlanes.com - Tweet Lanes
|
||||
92JGb2kLrhsPFER8CAZezHgBGpdZ3XYC - http://vidcast-app.net/ - Vidcast
|
||||
qjpU52DDXuurvMw65gzNbv7XCreV5v3m - https://github.com/minego/macaw-enyo - Macaw
|
||||
Ab2jgbmdrz9Kjk49AKmDSDsGNt4cq4H8 - http://shootingstar.fm/asterisk/ - Asterisk(仮)
|
||||
QRLNj42zZ8KVkBgs6Jm5KwHu98Zs3YTu - https://play.google.com/store/apps/details?id=com.matsumo.bb - アオイトリ(bluebird)
|
||||
gK89yfgAr8qxH9HZf8nbhry8Snc5fRGV - http://aa.tt/sprinter-ios - Sprinter
|
||||
X2hcReHMUuK7Mx3uTxGRPnYeCrugx5JX - http://getzephyrapp.com - Zephyr
|
||||
FS62JKk5qYppVA8JWhZvPepU7A33PXtD - http://www.instadesk-app.com/appetizer - Appetizer
|
||||
gxwZjynDJw4TjPPwk3z4YMs9fJBNSxVm - http://www.nymphicusapp.com/chapper/ - Chapper
|
||||
QAH95svvU4pewJ5aKkpyCdUvyzMsBxBk - https://alpha.app.net/network - The Network
|
||||
WXJyQ6KK2TWy6ZDnJqJKbBDMrzPYYA3g - http://neater.co - Neater
|
||||
PeVWEPMAEQMBwU2KLSYAjenRrScuWs4a - http://fingernoodle.com/Mention - Mention
|
||||
Sza4zFMDcbmYqeCCjTusZNpP9DqWEwqJ - http://colorbay.me - Colorbay
|
||||
cgedd8JNuBcEZfjCstsk74J9hxKnBYef - http://www.MetroAppNet.com - MetroAppNet
|
||||
rsQM4njhnZnSe2Jaqsw5eVZQHLcM37wv - http://mobileways.de/gravity - Gravity
|
||||
4M5FBt9NRk5Zu4FqaWcGZHj84ryUxwXh - http://habitatus.net/photolicious - Photolicious
|
||||
D7vDLagx2fyBrqvGRyH6qZkdQAFvETv8 - http://206.81.100.17:8000/ - Alpha Test
|
||||
ZcFNVDbEhCTc79z9ALaGbxuvXRqTdDAS - http://watercoolerapp.net - Watercooler
|
||||
BHKWNEYrz3Fv5CzgvksK6pydcAE6q52r - http://rivolu.com/spoonbill - Spoonbill
|
||||
dxZBcnnPjcV4ErwbjArvbGBHMcnW4SMB - https://play.google.com/store/apps/details?id=jp.hamsoft.hamoooooon&hl=ja - Hamoooooon
|
||||
hSyCNZrLZCZHcmsHr6cLFMF2pwQpRmZP - http://getpika.com - Pika
|
||||
9gbNKzXYsyzErU9K2J7v88XaFRfwsDzN - http://www.planet1107.net - AppNet Rhino
|
||||
tyLnvDZJPX37U8gZ6WtZ2Ysf9kpTmRXy - https://play.google.com/store/apps/details?id=com.floatboth.antigravity - Antigravity
|
||||
GLSssckvDjzbCa27B8HZVjJ2DPZgGJL3 - http://lunarguard.co/ - Pegasus
|
||||
dyJyAJa535BMjqYBQsgftREbxsqdcVLL - http://www.flamingow.com - Flamingow
|
||||
u6TeYE9yYprhkWPjVNgacJLngkhVrDFw - http://rafaelc.com.br - Sweet(dot)net for iOS
|
60
appnet/count.php
Normal file
60
appnet/count.php
Normal file
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
require_once("boot.php");
|
||||
|
||||
if(@is_null($a)) {
|
||||
$a = new App;
|
||||
}
|
||||
|
||||
@include(".htconfig.php");
|
||||
require_once("dba.php");
|
||||
dba::connect($db_host, $db_user, $db_pass, $db_data);
|
||||
unset($db_host, $db_user, $db_pass, $db_data);
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
$token = get_pconfig($b['uid'],'appnet','token');
|
||||
|
||||
require_once 'addon/appnet/AppDotNet.php';
|
||||
|
||||
$clientId = get_pconfig($b["uid"],'appnet','clientid');
|
||||
$clientSecret = get_pconfig($b["uid"],'appnet','clientsecret');
|
||||
|
||||
$app = new AppDotNet($clientId, $clientSecret);
|
||||
$app->setAccessToken($token);
|
||||
|
||||
$param = array("include_muted" => true, "include_directed_posts" => true, "count" => 3000);
|
||||
|
||||
$lastid = @file_get_contents("addon/appnet/lastid.txt");
|
||||
$clients = @file_get_contents("addon/appnet/clients.txt");
|
||||
$users = @file_get_contents("addon/appnet/users.txt");
|
||||
|
||||
if ($lastid != "")
|
||||
$param["since_id"] = $lastid;
|
||||
|
||||
$posts = $app->getPublicPosts($param);
|
||||
|
||||
foreach ($posts AS $post) {
|
||||
if ($lastid < $post["id"])
|
||||
$lastid = $post["id"];
|
||||
|
||||
if (!isset($post["reply_to"]) AND !strstr($clients, $post["source"]["client_id"]))
|
||||
continue;
|
||||
|
||||
if (isset($post["reply_to"]) AND !strstr($clients, $post["source"]["client_id"]))
|
||||
$clients .= $post["source"]["client_id"]." - ".$post["source"]["link"]." - ".$post["source"]["name"]."\n";
|
||||
|
||||
if (!strstr($users, $post["user"]["canonical_url"]))
|
||||
$users .= $post["user"]["canonical_url"]." - ".$post["user"]["name"]."\n";
|
||||
|
||||
//echo $post["source"]["link"]." ".$post["source"]["name"]."\n";
|
||||
//echo $post["user"]["name"]."\n";
|
||||
//echo $post["text"]."\n";
|
||||
//echo $post["canonical_url"]."\n";
|
||||
//print_r($post["user"]);
|
||||
//echo "---------------------------------\n";
|
||||
|
||||
}
|
||||
|
||||
file_put_contents("addon/appnet/lastid.txt", $lastid);
|
||||
file_put_contents("addon/appnet/clients.txt", $clients);
|
||||
file_put_contents("addon/appnet/users.txt", $users);
|
116
appnet/lang/C/messages.po
Normal file
116
appnet/lang/C/messages.po
Normal file
|
@ -0,0 +1,116 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try again."
|
||||
"</p>"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a href=\"https://account.app.net/"
|
||||
"developer/apps/\">https://account.app.net/developer/apps/</a> and enter "
|
||||
"Client ID and Client Secret. "
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/"
|
||||
"\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr ""
|
118
appnet/lang/cs/messages.po
Normal file
118
appnet/lang/cs/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Michal Šupler <msupler@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: 2014-07-02 15:24+0000\n"
|
||||
"Last-Translator: Michal Šupler <msupler@gmail.com>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/projects/p/friendica/language/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr "Přístup odmítnut."
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr "Nyní jste přihlášen k app.net."
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr "<p>Chyba v přenesení tokenu. Prosím zkuste to znovu.</p>"
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr "návrat ke stránce konektor"
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr "Poslat příspěvek na app.net"
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr "App.net Export"
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr "V současné době připojen k:"
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr "Aktivovat App.net Post Plugin"
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr "Defaultně poslat na App.net"
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr "Importovat vzdálenou časovou osu"
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||
"again.</p>"
|
||||
msgstr "<p>Chyba v přenesení uživatelského profilu. Prosím zkuste smazat konfiguraci a zkusit to znovu.</p>"
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr "<p>Máte nyní dvě možnosti jak se připojit k App.net.</p>"
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a "
|
||||
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||
" and enter Client ID and Client Secret. "
|
||||
msgstr "<p>První možnost: Registrovat svou žádost na <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> a zadat Client ID and Client Secret. "
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr "Použít '%s' jako URI pro přesměrování<p>"
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr "Client ID"
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr "Client Secret"
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr "<p>Druhá možnost: vložit token do <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr "Nastavte tyto rámce: 'Základní', 'Stream', 'Psaní příspěvků, 'Veřejné zprávy', 'Zprávy'.</p>"
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr "Token"
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr "Přihlásit se s použitím App.net"
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr "Vymazat konfiguraci OAuth"
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr "Uložit Nastavení"
|
29
appnet/lang/cs/strings.php
Normal file
29
appnet/lang/cs/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_cs")) {
|
||||
function string_plural_select_cs($n){
|
||||
return ($n==1) ? 0 : ($n>=2 && $n<=4) ? 1 : 2;;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Přístup odmítnut.";
|
||||
$a->strings["You are now authenticated to app.net. "] = "Nyní jste přihlášen k app.net.";
|
||||
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Chyba v přenesení tokenu. Prosím zkuste to znovu.</p>";
|
||||
$a->strings["return to the connector page"] = "návrat ke stránce konektor";
|
||||
$a->strings["Post to app.net"] = "Poslat příspěvek na app.net";
|
||||
$a->strings["App.net Export"] = "App.net Export";
|
||||
$a->strings["Currently connected to: "] = "V současné době připojen k:";
|
||||
$a->strings["Enable App.net Post Plugin"] = "Aktivovat App.net Post Plugin";
|
||||
$a->strings["Post to App.net by default"] = "Defaultně poslat na App.net";
|
||||
$a->strings["Import the remote timeline"] = "Importovat vzdálenou časovou osu";
|
||||
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Chyba v přenesení uživatelského profilu. Prosím zkuste smazat konfiguraci a zkusit to znovu.</p>";
|
||||
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Máte nyní dvě možnosti jak se připojit k App.net.</p>";
|
||||
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>První možnost: Registrovat svou žádost na <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> a zadat Client ID and Client Secret. ";
|
||||
$a->strings["Use '%s' as Redirect URI<p>"] = "Použít '%s' jako URI pro přesměrování<p>";
|
||||
$a->strings["Client ID"] = "Client ID";
|
||||
$a->strings["Client Secret"] = "Client Secret";
|
||||
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Druhá možnost: vložit token do <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. ";
|
||||
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Nastavte tyto rámce: 'Základní', 'Stream', 'Psaní příspěvků, 'Veřejné zprávy', 'Zprávy'.</p>";
|
||||
$a->strings["Token"] = "Token";
|
||||
$a->strings["Sign in using App.net"] = "Přihlásit se s použitím App.net";
|
||||
$a->strings["Clear OAuth configuration"] = "Vymazat konfiguraci OAuth";
|
||||
$a->strings["Save Settings"] = "Uložit Nastavení";
|
118
appnet/lang/de/messages.po
Normal file
118
appnet/lang/de/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# bavatar <tobias.diekershoff@gmx.net>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: 2014-06-25 04:31+0000\n"
|
||||
"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/friendica/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr "Zugriff verweigert."
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr "Du bist nun auf app.net authentifiziert."
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr "<p>Fehler beim Holen des Tokens, bitte versuche es später noch einmal.</p>"
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr "zurück zur Connector Seite"
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr "Nach app.net senden"
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr "App.net Export"
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr "Momentan verbunden mit: "
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr "Veröffentlichungen bei App.net erlauben"
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr "Standardmäßig bei App.net veröffentlichen"
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr "Importiere die entfernte Zeitleiste"
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||
"again.</p>"
|
||||
msgstr "<p>Beim Laden des Nutzerprofils ist ein Fehler aufgetreten. Bitte versuche es später noch einmal.</p>"
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr "<p>Du hast zwei Wege deinen friendica Account mit App.net zu verbinden.</p>"
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a "
|
||||
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||
" and enter Client ID and Client Secret. "
|
||||
msgstr "<p>Erster Weg: Registriere eine Anwendung unter <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> und wähle eine Client ID und ein Client Secret."
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr "Verwende '%s' als Redirect URI<p>"
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr "Client ID"
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr "Client Secret"
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr "<p>Zweiter Weg: Beantrage ein Token unter <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr "Verwende folgende Scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr "Token"
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr "Per App.net anmelden"
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr "OAuth Konfiguration löschen"
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr "Einstellungen speichern"
|
29
appnet/lang/de/strings.php
Normal file
29
appnet/lang/de/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_de")) {
|
||||
function string_plural_select_de($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Zugriff verweigert.";
|
||||
$a->strings["You are now authenticated to app.net. "] = "Du bist nun auf app.net authentifiziert.";
|
||||
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Fehler beim Holen des Tokens, bitte versuche es später noch einmal.</p>";
|
||||
$a->strings["return to the connector page"] = "zurück zur Connector Seite";
|
||||
$a->strings["Post to app.net"] = "Nach app.net senden";
|
||||
$a->strings["App.net Export"] = "App.net Export";
|
||||
$a->strings["Currently connected to: "] = "Momentan verbunden mit: ";
|
||||
$a->strings["Enable App.net Post Plugin"] = "Veröffentlichungen bei App.net erlauben";
|
||||
$a->strings["Post to App.net by default"] = "Standardmäßig bei App.net veröffentlichen";
|
||||
$a->strings["Import the remote timeline"] = "Importiere die entfernte Zeitleiste";
|
||||
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Beim Laden des Nutzerprofils ist ein Fehler aufgetreten. Bitte versuche es später noch einmal.</p>";
|
||||
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Du hast zwei Wege deinen friendica Account mit App.net zu verbinden.</p>";
|
||||
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Erster Weg: Registriere eine Anwendung unter <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> und wähle eine Client ID und ein Client Secret.";
|
||||
$a->strings["Use '%s' as Redirect URI<p>"] = "Verwende '%s' als Redirect URI<p>";
|
||||
$a->strings["Client ID"] = "Client ID";
|
||||
$a->strings["Client Secret"] = "Client Secret";
|
||||
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Zweiter Weg: Beantrage ein Token unter <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. ";
|
||||
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Verwende folgende Scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>";
|
||||
$a->strings["Token"] = "Token";
|
||||
$a->strings["Sign in using App.net"] = "Per App.net anmelden";
|
||||
$a->strings["Clear OAuth configuration"] = "OAuth Konfiguration löschen";
|
||||
$a->strings["Save Settings"] = "Einstellungen speichern";
|
118
appnet/lang/es/messages.po
Normal file
118
appnet/lang/es/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Alberto Díaz Tormo <albertodiaztormo@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: 2016-10-13 21:25+0000\n"
|
||||
"Last-Translator: Alberto Díaz Tormo <albertodiaztormo@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr "Permiso denegado"
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr "Ahora está autenticado en app.net."
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr "<p>Advertencia de error. Por favor inténtelo de nuevo.</p>"
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr "vuelva a pa página de conexón"
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr "Publique en app.net"
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr "Exportar a app.net"
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr "Actualmente conectado a:"
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr "Habilitar el plugin de publicación de App.net"
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr "Publicar en App.net por defecto"
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr "Importar la línea de tiempo remota"
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||
"again.</p>"
|
||||
msgstr "<p>Advertencia de error de perfil. Por favor borre la configuración e inténtelo de nuevo.</p>"
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr "<p>Tiene dos formas de conectar a App.net.</p>"
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a "
|
||||
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||
" and enter Client ID and Client Secret. "
|
||||
msgstr "<p>Primera forma: Registrar una aplicación en <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> y seleccionar Client ID y Client Secret. "
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr "Use '%s' como Redirigir URI"
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr "ID de cliente"
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr "Secreto de cliente"
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr "<p>Segunda manera: traiga un símbolo a <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>"
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr "Seleccione estas posibilidades: 'Básico', 'Continuo', 'Escribir entrada', 'Mensajes públicos', 'Mensajes'.</p>"
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr "Símbolo"
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr "Regístrese usando App.net"
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr "Borre la configuración OAuth"
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr "Guardar los ajustes"
|
29
appnet/lang/es/strings.php
Normal file
29
appnet/lang/es/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_es")) {
|
||||
function string_plural_select_es($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Permiso denegado";
|
||||
$a->strings["You are now authenticated to app.net. "] = "Ahora está autenticado en app.net.";
|
||||
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Advertencia de error. Por favor inténtelo de nuevo.</p>";
|
||||
$a->strings["return to the connector page"] = "vuelva a pa página de conexón";
|
||||
$a->strings["Post to app.net"] = "Publique en app.net";
|
||||
$a->strings["App.net Export"] = "Exportar a app.net";
|
||||
$a->strings["Currently connected to: "] = "Actualmente conectado a:";
|
||||
$a->strings["Enable App.net Post Plugin"] = "Habilitar el plugin de publicación de App.net";
|
||||
$a->strings["Post to App.net by default"] = "Publicar en App.net por defecto";
|
||||
$a->strings["Import the remote timeline"] = "Importar la línea de tiempo remota";
|
||||
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Advertencia de error de perfil. Por favor borre la configuración e inténtelo de nuevo.</p>";
|
||||
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Tiene dos formas de conectar a App.net.</p>";
|
||||
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Primera forma: Registrar una aplicación en <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> y seleccionar Client ID y Client Secret. ";
|
||||
$a->strings["Use '%s' as Redirect URI<p>"] = "Use '%s' como Redirigir URI";
|
||||
$a->strings["Client ID"] = "ID de cliente";
|
||||
$a->strings["Client Secret"] = "Secreto de cliente";
|
||||
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Segunda manera: traiga un símbolo a <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>";
|
||||
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Seleccione estas posibilidades: 'Básico', 'Continuo', 'Escribir entrada', 'Mensajes públicos', 'Mensajes'.</p>";
|
||||
$a->strings["Token"] = "Símbolo";
|
||||
$a->strings["Sign in using App.net"] = "Regístrese usando App.net";
|
||||
$a->strings["Clear OAuth configuration"] = "Borre la configuración OAuth";
|
||||
$a->strings["Save Settings"] = "Guardar los ajustes";
|
119
appnet/lang/fr/messages.po
Normal file
119
appnet/lang/fr/messages.po
Normal file
|
@ -0,0 +1,119 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Hypolite Petovan <mrpetovan@gmail.com>, 2016
|
||||
# Jak <jacques@riseup.net>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: 2016-09-24 02:12+0000\n"
|
||||
"Last-Translator: Hypolite Petovan <mrpetovan@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr "Autorisation refusée"
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr "Vous êtes maintenant authentifié sur app.net"
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr "<p>Impossible d'obtenir le jeton, merci de réessayer.</p>"
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr "revenir à la page du connecteur"
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr "Publier sur app.net"
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr "Export App.net"
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr "Actuellement connecté à :"
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr "Activer le plugin de publication app.net"
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr "Publier sur App.net par défaut"
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr "Importer la timeline distante"
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||
"again.</p>"
|
||||
msgstr "<p>Impossible d'obtenir le profil utilisateur. Merci de réinitialiser la configuration et de réessayer.</p>"
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr "<p>Vous avez deux possibilités pour vous connecter à App.net.</p>"
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a "
|
||||
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||
" and enter Client ID and Client Secret. "
|
||||
msgstr "<p>Première méthode: Enregistrer une application sur <a href=\"https://account.app.net/developer/apps/\">App.net [en]</a> et entrez l'ID Client et le Secret Client. "
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr "Utilisez '%s' pour l'URI de Redirection"
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr "ID Client"
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr "Secret Client"
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr "<p>Deuxième méthode: obtenez un jeton ur <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/ [en]</a>. "
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr "Cochez les \"scopes\" suivant: \"Basic\", \"Stream\", \"Write Post\", \"Public Messages\", \"Messages\".</p>"
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr "Jeton"
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr "Se connecter avec App.net"
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr "Effacer la configuration OAuth"
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr "Sauvegarder les paramètres"
|
29
appnet/lang/fr/strings.php
Normal file
29
appnet/lang/fr/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
return ($n > 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Autorisation refusée";
|
||||
$a->strings["You are now authenticated to app.net. "] = "Vous êtes maintenant authentifié sur app.net";
|
||||
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Impossible d'obtenir le jeton, merci de réessayer.</p>";
|
||||
$a->strings["return to the connector page"] = "revenir à la page du connecteur";
|
||||
$a->strings["Post to app.net"] = "Publier sur app.net";
|
||||
$a->strings["App.net Export"] = "Export App.net";
|
||||
$a->strings["Currently connected to: "] = "Actuellement connecté à :";
|
||||
$a->strings["Enable App.net Post Plugin"] = "Activer le plugin de publication app.net";
|
||||
$a->strings["Post to App.net by default"] = "Publier sur App.net par défaut";
|
||||
$a->strings["Import the remote timeline"] = "Importer la timeline distante";
|
||||
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Impossible d'obtenir le profil utilisateur. Merci de réinitialiser la configuration et de réessayer.</p>";
|
||||
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Vous avez deux possibilités pour vous connecter à App.net.</p>";
|
||||
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Première méthode: Enregistrer une application sur <a href=\"https://account.app.net/developer/apps/\">App.net [en]</a> et entrez l'ID Client et le Secret Client. ";
|
||||
$a->strings["Use '%s' as Redirect URI<p>"] = "Utilisez '%s' pour l'URI de Redirection";
|
||||
$a->strings["Client ID"] = "ID Client";
|
||||
$a->strings["Client Secret"] = "Secret Client";
|
||||
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Deuxième méthode: obtenez un jeton ur <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/ [en]</a>. ";
|
||||
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Cochez les \"scopes\" suivant: \"Basic\", \"Stream\", \"Write Post\", \"Public Messages\", \"Messages\".</p>";
|
||||
$a->strings["Token"] = "Jeton";
|
||||
$a->strings["Sign in using App.net"] = "Se connecter avec App.net";
|
||||
$a->strings["Clear OAuth configuration"] = "Effacer la configuration OAuth";
|
||||
$a->strings["Save Settings"] = "Sauvegarder les paramètres";
|
118
appnet/lang/it/messages.po
Normal file
118
appnet/lang/it/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# fabrixxm <fabrix.xm@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: 2014-09-10 10:18+0000\n"
|
||||
"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr "Permesso negato."
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr "Sei autenticato su app.net"
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr "<p>Errore recuperando il token. Prova di nuovo</p>"
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr "ritorna alla pagina del connettore"
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr "Invia ad app.net"
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr "Esporta App.net"
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr "Al momento connesso con:"
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr "Abilita il plugin di invio ad App.net"
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr "Invia sempre ad App.net"
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr "Importa la timeline remota"
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||
"again.</p>"
|
||||
msgstr "<p>Errore recuperando il profilo utente. Svuota la configurazione e prova di nuovo.</p>"
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr "<p>Puoi collegarti ad App.net in due modi.</p>"
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a "
|
||||
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||
" and enter Client ID and Client Secret. "
|
||||
msgstr "<p>Registrare un'applicazione su <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> e inserire Client ID e Client Secret."
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr "Usa '%s' come Redirect URI</p>"
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr "Client ID"
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr "Client Secret"
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr "<p>Oppure puoi recuperare un token su <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>."
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr "Imposta gli ambiti 'Basic', 'Stream', 'Scrivi Post', 'Messaggi Pubblici', 'Messaggi'.</p>"
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr "Token"
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr "Autenticati con App.net"
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr "Pulisci configurazione OAuth"
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr "Salva Impostazioni"
|
29
appnet/lang/it/strings.php
Normal file
29
appnet/lang/it/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_it")) {
|
||||
function string_plural_select_it($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Permesso negato.";
|
||||
$a->strings["You are now authenticated to app.net. "] = "Sei autenticato su app.net";
|
||||
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Errore recuperando il token. Prova di nuovo</p>";
|
||||
$a->strings["return to the connector page"] = "ritorna alla pagina del connettore";
|
||||
$a->strings["Post to app.net"] = "Invia ad app.net";
|
||||
$a->strings["App.net Export"] = "Esporta App.net";
|
||||
$a->strings["Currently connected to: "] = "Al momento connesso con:";
|
||||
$a->strings["Enable App.net Post Plugin"] = "Abilita il plugin di invio ad App.net";
|
||||
$a->strings["Post to App.net by default"] = "Invia sempre ad App.net";
|
||||
$a->strings["Import the remote timeline"] = "Importa la timeline remota";
|
||||
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Errore recuperando il profilo utente. Svuota la configurazione e prova di nuovo.</p>";
|
||||
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Puoi collegarti ad App.net in due modi.</p>";
|
||||
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Registrare un'applicazione su <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> e inserire Client ID e Client Secret.";
|
||||
$a->strings["Use '%s' as Redirect URI<p>"] = "Usa '%s' come Redirect URI</p>";
|
||||
$a->strings["Client ID"] = "Client ID";
|
||||
$a->strings["Client Secret"] = "Client Secret";
|
||||
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Oppure puoi recuperare un token su <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>.";
|
||||
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Imposta gli ambiti 'Basic', 'Stream', 'Scrivi Post', 'Messaggi Pubblici', 'Messaggi'.</p>";
|
||||
$a->strings["Token"] = "Token";
|
||||
$a->strings["Sign in using App.net"] = "Autenticati con App.net";
|
||||
$a->strings["Clear OAuth configuration"] = "Pulisci configurazione OAuth";
|
||||
$a->strings["Save Settings"] = "Salva Impostazioni";
|
118
appnet/lang/nl/messages.po
Normal file
118
appnet/lang/nl/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Jeroen S <j.soeurt@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: 2016-06-23 19:52+0000\n"
|
||||
"Last-Translator: Jeroen S <j.soeurt@gmail.com>\n"
|
||||
"Language-Team: Dutch (http://www.transifex.com/Friendica/friendica/language/nl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: nl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr "Toegang geweigerd"
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr "Je bent nu aangemeld bij app.net."
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr "<p>Fout tijdens token fetching. Probeer het nogmaals.</p>"
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr "ga terug naar de connector pagina"
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr "Post naar app.net."
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr "App.net Export"
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr "Momenteel verbonden met:"
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr "App.net Post Plugin inschakelen"
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr "Naar App.net posten als standaard instellen"
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr "The tijdlijn op afstand importeren"
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||
"again.</p>"
|
||||
msgstr "<p>Fout tijdens het ophalen van gebruikersprofiel. Leeg de configuratie en probeer het opnieuw.</p>"
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr "<p>Er zijn twee manieren om met App.net te verbinden.</p>"
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a "
|
||||
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||
" and enter Client ID and Client Secret. "
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr ""
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr ""
|
29
appnet/lang/nl/strings.php
Normal file
29
appnet/lang/nl/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_nl")) {
|
||||
function string_plural_select_nl($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Toegang geweigerd";
|
||||
$a->strings["You are now authenticated to app.net. "] = "Je bent nu aangemeld bij app.net.";
|
||||
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Fout tijdens token fetching. Probeer het nogmaals.</p>";
|
||||
$a->strings["return to the connector page"] = "ga terug naar de connector pagina";
|
||||
$a->strings["Post to app.net"] = "Post naar app.net.";
|
||||
$a->strings["App.net Export"] = "App.net Export";
|
||||
$a->strings["Currently connected to: "] = "Momenteel verbonden met:";
|
||||
$a->strings["Enable App.net Post Plugin"] = "App.net Post Plugin inschakelen";
|
||||
$a->strings["Post to App.net by default"] = "Naar App.net posten als standaard instellen";
|
||||
$a->strings["Import the remote timeline"] = "The tijdlijn op afstand importeren";
|
||||
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Fout tijdens het ophalen van gebruikersprofiel. Leeg de configuratie en probeer het opnieuw.</p>";
|
||||
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Er zijn twee manieren om met App.net te verbinden.</p>";
|
||||
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "";
|
||||
$a->strings["Use '%s' as Redirect URI<p>"] = "";
|
||||
$a->strings["Client ID"] = "";
|
||||
$a->strings["Client Secret"] = "";
|
||||
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "";
|
||||
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "";
|
||||
$a->strings["Token"] = "";
|
||||
$a->strings["Sign in using App.net"] = "";
|
||||
$a->strings["Clear OAuth configuration"] = "";
|
||||
$a->strings["Save Settings"] = "";
|
119
appnet/lang/pt-br/messages.po
Normal file
119
appnet/lang/pt-br/messages.po
Normal file
|
@ -0,0 +1,119 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Beatriz Vital <vitalb@riseup.net>, 2016
|
||||
# Calango Jr <jcsojr@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: 2016-08-19 20:37+0000\n"
|
||||
"Last-Translator: Beatriz Vital <vitalb@riseup.net>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/Friendica/friendica/language/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr "Permissão negada."
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr "Você está autenticado no app.net."
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr "Erro ocorrido na obtenção do token. Tente novamente."
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr "Volte a página de conectores."
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr "Publicar no App.net"
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr "App.net exportar"
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr "Atualmente conectado em: "
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr "Habilitar plug-in para publicar no App.net"
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr "Publicar em App.net por padrão"
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr "Importar a linha do tempo remota"
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||
"again.</p>"
|
||||
msgstr "Erro na obtenção do perfil do usuário. Confira as configurações e tente novamente."
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr "<p>Você possui duas formas de conectar ao App.net</p>"
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a "
|
||||
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||
" and enter Client ID and Client Secret. "
|
||||
msgstr "<p>1º Método: Registre uma aplicação em <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> e entre o Client ID e Client Secret"
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr "Use '%s' como URI redirecionador<p>"
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr "Client ID"
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr "Client Secret"
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr "<p>2º Método: obtenha um token em <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr "Adicione valor as estas saídas: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr "Token"
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr "Entre usando o App.net"
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr "Limpar configuração OAuth"
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr "Salvar Configurações"
|
29
appnet/lang/pt-br/strings.php
Normal file
29
appnet/lang/pt-br/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_pt_br")) {
|
||||
function string_plural_select_pt_br($n){
|
||||
return ($n > 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Permissão negada.";
|
||||
$a->strings["You are now authenticated to app.net. "] = "Você está autenticado no app.net.";
|
||||
$a->strings["<p>Error fetching token. Please try again.</p>"] = "Erro ocorrido na obtenção do token. Tente novamente.";
|
||||
$a->strings["return to the connector page"] = "Volte a página de conectores.";
|
||||
$a->strings["Post to app.net"] = "Publicar no App.net";
|
||||
$a->strings["App.net Export"] = "App.net exportar";
|
||||
$a->strings["Currently connected to: "] = "Atualmente conectado em: ";
|
||||
$a->strings["Enable App.net Post Plugin"] = "Habilitar plug-in para publicar no App.net";
|
||||
$a->strings["Post to App.net by default"] = "Publicar em App.net por padrão";
|
||||
$a->strings["Import the remote timeline"] = "Importar a linha do tempo remota";
|
||||
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "Erro na obtenção do perfil do usuário. Confira as configurações e tente novamente.";
|
||||
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Você possui duas formas de conectar ao App.net</p>";
|
||||
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>1º Método: Registre uma aplicação em <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> e entre o Client ID e Client Secret";
|
||||
$a->strings["Use '%s' as Redirect URI<p>"] = "Use '%s' como URI redirecionador<p>";
|
||||
$a->strings["Client ID"] = "Client ID";
|
||||
$a->strings["Client Secret"] = "Client Secret";
|
||||
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>2º Método: obtenha um token em <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. ";
|
||||
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Adicione valor as estas saídas: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>";
|
||||
$a->strings["Token"] = "Token";
|
||||
$a->strings["Sign in using App.net"] = "Entre usando o App.net";
|
||||
$a->strings["Clear OAuth configuration"] = "Limpar configuração OAuth";
|
||||
$a->strings["Save Settings"] = "Salvar Configurações";
|
117
appnet/lang/ro/messages.po
Normal file
117
appnet/lang/ro/messages.po
Normal file
|
@ -0,0 +1,117 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: 2014-07-08 11:40+0000\n"
|
||||
"Last-Translator: Arian - Cazare Muncitori <arianserv@gmail.com>\n"
|
||||
"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ro_RO\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr "Permisiune refuzată."
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr "Acum sunteți autentificat pe App.net."
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr "<p>Eroare la procesarea token-ului. Vă rugăm să reîncercați.</p>"
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr "revenire la pagina de conectare"
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr "Postați pe App.net"
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr "Exportare pe App.net"
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr "Conectat curent la:"
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr "Activare Modul Postare pe App.net"
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr "Postați implicit pe App.net"
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr "Importare cronologie la distanță"
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||
"again.</p>"
|
||||
msgstr "<p>Eroare la procesarea profilului de utilizator. Vă rugăm să ștergeți configurarea şi apoi reîncercați.</p>"
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr "<p>Aveți două modalități de a vă conecta la App.net.</p>"
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a "
|
||||
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||
" and enter Client ID and Client Secret. "
|
||||
msgstr "<p>Prima modalitate: Înregistrați o cerere pe <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> şi introduceți ID Client şi Cheia Secretă Client."
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr "Utilizați '%s' ca URI de Redirecţionare<p>"
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr "ID Client"
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr "Cheia Secretă Client"
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr "<p>A doua cale: autorizați un indicativ de acces token de pe <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a> ."
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr "Stabiliți aceste scopuri: 'De Bază', 'Flux', 'Scriere Postare', 'Mesaje Publice', 'Mesaje'.</p>"
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr "Token"
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr "Autentificați-vă utilizând App.net"
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr "Ștergeți configurările OAuth"
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr "Salvare Configurări"
|
29
appnet/lang/ro/strings.php
Normal file
29
appnet/lang/ro/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_ro")) {
|
||||
function string_plural_select_ro($n){
|
||||
return ($n==1?0:((($n%100>19)||(($n%100==0)&&($n!=0)))?2:1));;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Permisiune refuzată.";
|
||||
$a->strings["You are now authenticated to app.net. "] = "Acum sunteți autentificat pe App.net.";
|
||||
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Eroare la procesarea token-ului. Vă rugăm să reîncercați.</p>";
|
||||
$a->strings["return to the connector page"] = "revenire la pagina de conectare";
|
||||
$a->strings["Post to app.net"] = "Postați pe App.net";
|
||||
$a->strings["App.net Export"] = "Exportare pe App.net";
|
||||
$a->strings["Currently connected to: "] = "Conectat curent la:";
|
||||
$a->strings["Enable App.net Post Plugin"] = "Activare Modul Postare pe App.net";
|
||||
$a->strings["Post to App.net by default"] = "Postați implicit pe App.net";
|
||||
$a->strings["Import the remote timeline"] = "Importare cronologie la distanță";
|
||||
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Eroare la procesarea profilului de utilizator. Vă rugăm să ștergeți configurarea şi apoi reîncercați.</p>";
|
||||
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Aveți două modalități de a vă conecta la App.net.</p>";
|
||||
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Prima modalitate: Înregistrați o cerere pe <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> şi introduceți ID Client şi Cheia Secretă Client.";
|
||||
$a->strings["Use '%s' as Redirect URI<p>"] = "Utilizați '%s' ca URI de Redirecţionare<p>";
|
||||
$a->strings["Client ID"] = "ID Client";
|
||||
$a->strings["Client Secret"] = "Cheia Secretă Client";
|
||||
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>A doua cale: autorizați un indicativ de acces token de pe <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a> .";
|
||||
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Stabiliți aceste scopuri: 'De Bază', 'Flux', 'Scriere Postare', 'Mesaje Publice', 'Mesaje'.</p>";
|
||||
$a->strings["Token"] = "Token";
|
||||
$a->strings["Sign in using App.net"] = "Autentificați-vă utilizând App.net";
|
||||
$a->strings["Clear OAuth configuration"] = "Ștergeți configurările OAuth";
|
||||
$a->strings["Save Settings"] = "Salvare Configurări";
|
118
appnet/lang/ru/messages.po
Normal file
118
appnet/lang/ru/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
|||
# ADDON appnet
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Stanislav N. <pztrn@pztrn.name>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||
"PO-Revision-Date: 2017-04-08 05:32+0000\n"
|
||||
"Last-Translator: Stanislav N. <pztrn@pztrn.name>\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: appnet.php:39
|
||||
msgid "Permission denied."
|
||||
msgstr "Доступ запрещен."
|
||||
|
||||
#: appnet.php:73
|
||||
msgid "You are now authenticated to app.net. "
|
||||
msgstr "Вы аутентифицированы на app.net"
|
||||
|
||||
#: appnet.php:77
|
||||
msgid "<p>Error fetching token. Please try again.</p>"
|
||||
msgstr "<p>Ошибка получения токена. Попробуйте еще раз.</p>"
|
||||
|
||||
#: appnet.php:80
|
||||
msgid "return to the connector page"
|
||||
msgstr "вернуться на страницу коннектора"
|
||||
|
||||
#: appnet.php:94
|
||||
msgid "Post to app.net"
|
||||
msgstr "Отправить на app.net"
|
||||
|
||||
#: appnet.php:125 appnet.php:129
|
||||
msgid "App.net Export"
|
||||
msgstr "Экспорт app.net"
|
||||
|
||||
#: appnet.php:142
|
||||
msgid "Currently connected to: "
|
||||
msgstr "В настоящее время соединены с: "
|
||||
|
||||
#: appnet.php:144
|
||||
msgid "Enable App.net Post Plugin"
|
||||
msgstr "Включить плагин App.net"
|
||||
|
||||
#: appnet.php:149
|
||||
msgid "Post to App.net by default"
|
||||
msgstr "Отправлять сообщения на App.net по-умолчанию"
|
||||
|
||||
#: appnet.php:153
|
||||
msgid "Import the remote timeline"
|
||||
msgstr "Импортировать удаленные сообщения"
|
||||
|
||||
#: appnet.php:159
|
||||
msgid ""
|
||||
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||
"again.</p>"
|
||||
msgstr "<p>Ошибка при получении профиля пользователя. Сбросьте конфигурацию и попробуйте еще раз.</p>"
|
||||
|
||||
#: appnet.php:164
|
||||
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||
msgstr "<p>У вас есть два способа соединения с App.net.</p>"
|
||||
|
||||
#: appnet.php:166
|
||||
msgid ""
|
||||
"<p>First way: Register an application at <a "
|
||||
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||
" and enter Client ID and Client Secret. "
|
||||
msgstr "<p>Первый способ: зарегистрируйте приложение на <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> и введите Client ID и Client Secret"
|
||||
|
||||
#: appnet.php:167
|
||||
#, php-format
|
||||
msgid "Use '%s' as Redirect URI<p>"
|
||||
msgstr "Используйте '%s' как Redirect URI<p>"
|
||||
|
||||
#: appnet.php:169
|
||||
msgid "Client ID"
|
||||
msgstr "Client ID"
|
||||
|
||||
#: appnet.php:173
|
||||
msgid "Client Secret"
|
||||
msgstr "Client Secret"
|
||||
|
||||
#: appnet.php:177
|
||||
msgid ""
|
||||
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
msgstr "<p>Второй путь: получите токен на <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||
|
||||
#: appnet.php:178
|
||||
msgid ""
|
||||
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||
"'Messages'.</p>"
|
||||
msgstr "Выберите области: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"
|
||||
|
||||
#: appnet.php:180
|
||||
msgid "Token"
|
||||
msgstr "Токен"
|
||||
|
||||
#: appnet.php:192
|
||||
msgid "Sign in using App.net"
|
||||
msgstr "Войти через App.net"
|
||||
|
||||
#: appnet.php:197
|
||||
msgid "Clear OAuth configuration"
|
||||
msgstr "Удалить конфигурацию OAuth"
|
||||
|
||||
#: appnet.php:204
|
||||
msgid "Save Settings"
|
||||
msgstr "Сохранить настройки"
|
29
appnet/lang/ru/strings.php
Normal file
29
appnet/lang/ru/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_ru")) {
|
||||
function string_plural_select_ru($n){
|
||||
return ($n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<12 || $n%100>14) ? 1 : $n%10==0 || ($n%10>=5 && $n%10<=9) || ($n%100>=11 && $n%100<=14)? 2 : 3);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Доступ запрещен.";
|
||||
$a->strings["You are now authenticated to app.net. "] = "Вы аутентифицированы на app.net";
|
||||
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Ошибка получения токена. Попробуйте еще раз.</p>";
|
||||
$a->strings["return to the connector page"] = "вернуться на страницу коннектора";
|
||||
$a->strings["Post to app.net"] = "Отправить на app.net";
|
||||
$a->strings["App.net Export"] = "Экспорт app.net";
|
||||
$a->strings["Currently connected to: "] = "В настоящее время соединены с: ";
|
||||
$a->strings["Enable App.net Post Plugin"] = "Включить плагин App.net";
|
||||
$a->strings["Post to App.net by default"] = "Отправлять сообщения на App.net по-умолчанию";
|
||||
$a->strings["Import the remote timeline"] = "Импортировать удаленные сообщения";
|
||||
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Ошибка при получении профиля пользователя. Сбросьте конфигурацию и попробуйте еще раз.</p>";
|
||||
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>У вас есть два способа соединения с App.net.</p>";
|
||||
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Первый способ: зарегистрируйте приложение на <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> и введите Client ID и Client Secret";
|
||||
$a->strings["Use '%s' as Redirect URI<p>"] = "Используйте '%s' как Redirect URI<p>";
|
||||
$a->strings["Client ID"] = "Client ID";
|
||||
$a->strings["Client Secret"] = "Client Secret";
|
||||
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Второй путь: получите токен на <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. ";
|
||||
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Выберите области: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>";
|
||||
$a->strings["Token"] = "Токен";
|
||||
$a->strings["Sign in using App.net"] = "Войти через App.net";
|
||||
$a->strings["Clear OAuth configuration"] = "Удалить конфигурацию OAuth";
|
||||
$a->strings["Save Settings"] = "Сохранить настройки";
|
1
appnet/lastid.txt
Normal file
1
appnet/lastid.txt
Normal file
|
@ -0,0 +1 @@
|
|||
36406925
|
514
appnet/sync.php
Normal file
514
appnet/sync.php
Normal file
|
@ -0,0 +1,514 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
To-Do:
|
||||
- like empfangen
|
||||
- Links besser auflösen
|
||||
|
||||
Testen:
|
||||
|
||||
*/
|
||||
require_once("boot.php");
|
||||
|
||||
if(@is_null($a)) {
|
||||
$a = new App;
|
||||
}
|
||||
|
||||
@include(".htconfig.php");
|
||||
require_once("dba.php");
|
||||
dba::connect($db_host, $db_user, $db_pass, $db_data);
|
||||
unset($db_host, $db_user, $db_pass, $db_data);
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
//require_once("addon/appnet/appnet.php");
|
||||
|
||||
$uid = 1;
|
||||
appnet_fetchstream($a, $uid);
|
||||
|
||||
function appnet_fetchstream($a, $uid) {
|
||||
require_once("addon/appnet/AppDotNet.php");
|
||||
require_once('include/items.php');
|
||||
|
||||
$token = get_pconfig($uid,'appnet','token');
|
||||
$clientId = get_pconfig($uid,'appnet','clientid');
|
||||
$clientSecret = get_pconfig($uid,'appnet','clientsecret');
|
||||
|
||||
$app = new AppDotNet($clientId, $clientSecret);
|
||||
$app->setAccessToken($token);
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
|
||||
intval($uid));
|
||||
|
||||
if(count($r))
|
||||
$me = $r[0];
|
||||
else {
|
||||
logger("appnet_fetchstream: Own contact not found for user ".$uid, LOGGER_DEBUG);
|
||||
return;
|
||||
}
|
||||
|
||||
$user = q("SELECT * FROM `user` WHERE `uid` = %d AND `account_expired` = 0 LIMIT 1",
|
||||
intval($uid)
|
||||
);
|
||||
|
||||
if(count($user))
|
||||
$user = $user[0];
|
||||
else {
|
||||
logger("appnet_fetchstream: Own user not found for user ".$uid, LOGGER_DEBUG);
|
||||
return;
|
||||
}
|
||||
|
||||
$ownid = get_pconfig($uid,'appnet','ownid');
|
||||
|
||||
$param = array("include_annotations" => true);
|
||||
$post = $app->getPost(32189565, $param);
|
||||
//$post = $app->getPost(32166492, $param);
|
||||
//$post = $app->getPost(32166065, $param);
|
||||
//$post = $app->getPost(32161780, $param);
|
||||
$postarray = appnet2_createpost($a, $uid, $post, $me, $user, $ownid, false);
|
||||
print_r($postarray);
|
||||
// $item = item_store($postarray);
|
||||
die();
|
||||
|
||||
|
||||
// Fetch stream
|
||||
$param = array("count" => 200, "include_deleted" => false, "include_directed_posts" => true, "include_html" => false, "include_annotations" => true);
|
||||
|
||||
$lastid = get_pconfig($uid, 'appnet', 'laststreamid');
|
||||
|
||||
if ($lastid <> "")
|
||||
$param["since_id"] = $lastid;
|
||||
|
||||
try {
|
||||
$stream = $app->getUserStream($param);
|
||||
}
|
||||
catch (AppDotNetException $e) {
|
||||
logger("appnet_fetchstream: Error fetching stream for user ".$uid);
|
||||
}
|
||||
|
||||
$stream = array_reverse($stream);
|
||||
foreach ($stream AS $post) {
|
||||
$postarray = appnet_createpost($a, $uid, $post, $me, $user, $ownid, true);
|
||||
|
||||
$item = item_store($postarray);
|
||||
logger('appnet_fetchstream: User '.$uid.' posted stream item '.$item);
|
||||
|
||||
$lastid = $post["id"];
|
||||
|
||||
if (($item != 0) AND ($postarray['contact-id'] != $me["id"])) {
|
||||
$r = q("SELECT `thread`.`iid` AS `parent` FROM `thread`
|
||||
INNER JOIN `item` ON `thread`.`iid` = `item`.`parent` AND `thread`.`uid` = `item`.`uid`
|
||||
WHERE `item`.`id` = %d AND `thread`.`mention` LIMIT 1", dbesc($item));
|
||||
|
||||
if (count($r)) {
|
||||
require_once('include/enotify.php');
|
||||
notification(array(
|
||||
'type' => NOTIFY_COMMENT,
|
||||
'notify_flags' => $user['notify-flags'],
|
||||
'language' => $user['language'],
|
||||
'to_name' => $user['username'],
|
||||
'to_email' => $user['email'],
|
||||
'uid' => $user['uid'],
|
||||
'item' => $postarray,
|
||||
'link' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $item,
|
||||
'source_name' => $postarray['author-name'],
|
||||
'source_link' => $postarray['author-link'],
|
||||
'source_photo' => $postarray['author-avatar'],
|
||||
'verb' => ACTIVITY_POST,
|
||||
'otype' => 'item',
|
||||
'parent' => $r[0]["parent"],
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set_pconfig($uid, 'appnet', 'laststreamid', $lastid);
|
||||
|
||||
// Fetch mentions
|
||||
$param = array("count" => 200, "include_deleted" => false, "include_directed_posts" => true, "include_html" => false, "include_annotations" => true);
|
||||
|
||||
$lastid = get_pconfig($uid, 'appnet', 'lastmentionid');
|
||||
|
||||
if ($lastid <> "")
|
||||
$param["since_id"] = $lastid;
|
||||
|
||||
try {
|
||||
$mentions = $app->getUserMentions("me", $param);
|
||||
}
|
||||
catch (AppDotNetException $e) {
|
||||
logger("appnet_fetchstream: Error fetching mentions for user ".$uid);
|
||||
}
|
||||
|
||||
$mentions = array_reverse($mentions);
|
||||
foreach ($mentions AS $post) {
|
||||
$postarray = appnet_createpost($a, $uid, $post, $me, $user, $ownid, false);
|
||||
|
||||
if (isset($postarray["id"]))
|
||||
$item = $postarray["id"];
|
||||
elseif (isset($postarray["body"])) {
|
||||
$item = item_store($postarray);
|
||||
logger('appnet_fetchstream: User '.$uid.' posted mention item '.$item);
|
||||
} else
|
||||
$item = 0;
|
||||
|
||||
$lastid = $post["id"];
|
||||
|
||||
if ($item != 0) {
|
||||
require_once('include/enotify.php');
|
||||
notification(array(
|
||||
'type' => NOTIFY_TAGSELF,
|
||||
'notify_flags' => $user['notify-flags'],
|
||||
'language' => $user['language'],
|
||||
'to_name' => $user['username'],
|
||||
'to_email' => $user['email'],
|
||||
'uid' => $user['uid'],
|
||||
'item' => $postarray,
|
||||
'link' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $item,
|
||||
'source_name' => $postarray['author-name'],
|
||||
'source_link' => $postarray['author-link'],
|
||||
'source_photo' => $postarray['author-avatar'],
|
||||
'verb' => ACTIVITY_TAG,
|
||||
'otype' => 'item'
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
set_pconfig($uid, 'appnet', 'lastmentionid', $lastid);
|
||||
|
||||
|
||||
/* To-Do
|
||||
$param = array("interaction_actions" => "star");
|
||||
$interactions = $app->getMyInteractions($param);
|
||||
foreach ($interactions AS $interaction)
|
||||
appnet_dolike($a, $uid, $interaction);
|
||||
*/
|
||||
}
|
||||
|
||||
function appnet2_createpost($a, $uid, $post, $me, $user, $ownid, $createuser, $threadcompletion = true) {
|
||||
require_once('include/items.php');
|
||||
|
||||
if ($post["machine_only"])
|
||||
return;
|
||||
|
||||
if ($post["is_deleted"])
|
||||
return;
|
||||
|
||||
$postarray = array();
|
||||
$postarray['gravity'] = 0;
|
||||
$postarray['uid'] = $uid;
|
||||
$postarray['wall'] = 0;
|
||||
$postarray['verb'] = ACTIVITY_POST;
|
||||
$postarray['network'] = dbesc(NETWORK_APPNET);
|
||||
$postarray['uri'] = "adn::".$post["id"];
|
||||
|
||||
$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($postarray['uri']),
|
||||
intval($uid)
|
||||
);
|
||||
|
||||
// if (count($r))
|
||||
// return($r[0]);
|
||||
|
||||
$r = q("SELECT * FROM `item` WHERE `extid` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($postarray['uri']),
|
||||
intval($uid)
|
||||
);
|
||||
|
||||
// if (count($r))
|
||||
// return($r[0]);
|
||||
|
||||
$postarray['parent-uri'] = "adn::".$post["thread_id"];
|
||||
if (isset($post["reply_to"]) AND ($post["reply_to"] != "")) {
|
||||
$postarray['thr-parent'] = "adn::".$post["reply_to"];
|
||||
|
||||
// Complete the thread if the parent doesn't exists
|
||||
if ($threadcompletion) {
|
||||
$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($postarray['thr-parent']),
|
||||
intval($uid)
|
||||
);
|
||||
if (!count($r)) {
|
||||
require_once("addon/appnet/AppDotNet.php");
|
||||
|
||||
$token = get_pconfig($uid,'appnet','token');
|
||||
$clientId = get_pconfig($uid,'appnet','clientid');
|
||||
$clientSecret = get_pconfig($uid,'appnet','clientsecret');
|
||||
|
||||
$app = new AppDotNet($clientId, $clientSecret);
|
||||
$app->setAccessToken($token);
|
||||
|
||||
$param = array("count" => 200, "include_deleted" => false, "include_directed_posts" => true, "include_html" => false, "include_annotations" => true);
|
||||
try {
|
||||
$thread = $app->getPostReplies($post["thread_id"], $param);
|
||||
}
|
||||
catch (AppDotNetException $e) {
|
||||
logger("appnet_createpost: Error fetching thread for user ".$uid);
|
||||
}
|
||||
$thread = array_reverse($thread);
|
||||
foreach ($thread AS $tpost) {
|
||||
$threadpost = appnet2_createpost($a, $uid, $tpost, $me, $user, $ownid, $createuser, false);
|
||||
$item = item_store($threadpost);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
$postarray['thr-parent'] = $postarray['uri'];
|
||||
|
||||
$postarray['plink'] = $post["canonical_url"];
|
||||
|
||||
if ($post["user"]["id"] != $ownid) {
|
||||
$postarray['owner-name'] = $post["user"]["name"];
|
||||
$postarray['owner-link'] = $post["user"]["canonical_url"];
|
||||
$postarray['owner-avatar'] = $post["user"]["avatar_image"]["url"];
|
||||
$postarray['contact-id'] = appnet_fetchcontact($a, $uid, $post["user"], $me, $createuser);
|
||||
} else {
|
||||
$postarray['owner-name'] = $me["name"];
|
||||
$postarray['owner-link'] = $me["url"];
|
||||
$postarray['owner-avatar'] = $me["thumb"];
|
||||
$postarray['contact-id'] = $me["id"];
|
||||
}
|
||||
|
||||
$links = array();
|
||||
|
||||
if (is_array($post["repost_of"])) {
|
||||
$postarray['author-name'] = $post["repost_of"]["user"]["name"];
|
||||
$postarray['author-link'] = $post["repost_of"]["user"]["canonical_url"];
|
||||
$postarray['author-avatar'] = $post["repost_of"]["user"]["avatar_image"]["url"];
|
||||
|
||||
$content = $post["repost_of"];
|
||||
} else {
|
||||
$postarray['author-name'] = $postarray['owner-name'];
|
||||
$postarray['author-link'] = $postarray['owner-link'];
|
||||
$postarray['author-avatar'] = $postarray['owner-avatar'];
|
||||
|
||||
$content = $post;
|
||||
}
|
||||
|
||||
if (is_array($content["entities"])) {
|
||||
$converted = appnet_expand_entities($a, $content["text"], $content["entities"]);
|
||||
$postarray['body'] = $converted["body"];
|
||||
$postarray['tag'] = $converted["tags"];
|
||||
} else
|
||||
$postarray['body'] = $content["text"];
|
||||
|
||||
if (is_array($content["annotations"]))
|
||||
$postarray['body'] = appnet_expand_annotations($a, $postarray['body'], $content["annotations"]);
|
||||
|
||||
if (sizeof($content["entities"]["links"]))
|
||||
foreach($content["entities"]["links"] AS $link) {
|
||||
$url = normalise_link($link["url"]);
|
||||
$links[$url] = $url;
|
||||
}
|
||||
|
||||
if (sizeof($content["annotations"]))
|
||||
foreach($content["annotations"] AS $annotation) {
|
||||
if (isset($annotation["value"]["embeddable_url"])) {
|
||||
$url = normalise_link($annotation["value"]["embeddable_url"]);
|
||||
if (isset($links[$url]))
|
||||
unset($links[$url]);
|
||||
}
|
||||
}
|
||||
|
||||
if (sizeof($links)) {
|
||||
$link = array_pop($links);
|
||||
$url = "[url=".$link."]".$link."[/url]";
|
||||
|
||||
$removedlink = trim(str_replace($url, "", $postarray['body']));
|
||||
|
||||
if (($removedlink == "") OR strstr($postarray['body'], $removedlink))
|
||||
$postarray['body'] = $removedlink;
|
||||
|
||||
$postarray['body'] .= add_page_info($link);
|
||||
}
|
||||
|
||||
$postarray['created'] = datetime_convert('UTC','UTC',$post["created_at"]);
|
||||
$postarray['edited'] = datetime_convert('UTC','UTC',$post["created_at"]);
|
||||
|
||||
$postarray['app'] = $post["source"]["name"];
|
||||
|
||||
return($postarray);
|
||||
//print_r($postarray);
|
||||
//print_r($post);
|
||||
}
|
||||
|
||||
function appnet_expand_entities($a, $body, $entities) {
|
||||
|
||||
if (!function_exists('substr_unicode')) {
|
||||
function substr_unicode($str, $s, $l = null) {
|
||||
return join("", array_slice(
|
||||
preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $s, $l));
|
||||
}
|
||||
}
|
||||
|
||||
$tags_arr = array();
|
||||
$replace = array();
|
||||
|
||||
foreach ($entities["mentions"] AS $mention) {
|
||||
$url = "@[url=https://alpha.app.net/".rawurlencode($mention["name"])."]".$mention["name"]."[/url]";
|
||||
$tags_arr["@".$mention["name"]] = $url;
|
||||
$replace[$mention["pos"]] = array("pos"=> $mention["pos"], "len"=> $mention["len"], "replace"=> $url);
|
||||
}
|
||||
|
||||
foreach ($entities["hashtags"] AS $hashtag) {
|
||||
$url = "#[url=".$a->get_baseurl()."/search?tag=".rawurlencode($hashtag["name"])."]".$hashtag["name"]."[/url]";
|
||||
$tags_arr["#".$hashtag["name"]] = $url;
|
||||
$replace[$hashtag["pos"]] = array("pos"=> $hashtag["pos"], "len"=> $hashtag["len"], "replace"=> $url);
|
||||
}
|
||||
|
||||
foreach ($entities["links"] AS $links) {
|
||||
$url = "[url=".$links["url"]."]".$links["text"]."[/url]";
|
||||
$replace[$links["pos"]] = array("pos"=> $links["pos"], "len"=> $links["len"], "replace"=> $url);
|
||||
}
|
||||
|
||||
|
||||
if (sizeof($replace)) {
|
||||
krsort($replace);
|
||||
foreach ($replace AS $entity) {
|
||||
$pre = substr_unicode($body, 0, $entity["pos"]);
|
||||
$post = substr_unicode($body, $entity["pos"] + $entity["len"]);
|
||||
|
||||
$body = $pre.$entity["replace"].$post;
|
||||
}
|
||||
}
|
||||
|
||||
return(array("body" => $body, "tags" => implode($tags_arr, ",")));
|
||||
}
|
||||
|
||||
function appnet_expand_annotations($a, $body, $annotations) {
|
||||
foreach ($annotations AS $annotation) {
|
||||
if ($annotation["value"]["type"] == "photo") {
|
||||
if (($annotation["value"]["thumbnail_large_url"] != "") AND ($annotation["value"]["url"] != ""))
|
||||
$body .= "\n[url=".$annotation["value"]["url"]."][img]".$annotation["value"]["thumbnail_large_url"]."[/img][/url]";
|
||||
elseif ($annotation["value"]["url"] != "")
|
||||
$body .= "\n[img]".$annotation["value"]["url"]."[/img]";
|
||||
}
|
||||
}
|
||||
return $body;
|
||||
}
|
||||
|
||||
function appnet_fetchcontact($a, $uid, $contact, $me, $create_user) {
|
||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `alias` = '%s' LIMIT 1",
|
||||
intval($uid), dbesc("adn::".$contact["id"]));
|
||||
|
||||
if(!count($r) AND !$create_user)
|
||||
return($me);
|
||||
|
||||
|
||||
if (count($r) AND ($r[0]["readonly"] OR $r[0]["blocked"])) {
|
||||
logger("appnet_fetchcontact: Contact '".$r[0]["nick"]."' is blocked or readonly.", LOGGER_DEBUG);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
if(!count($r)) {
|
||||
// create contact record
|
||||
q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `addr`, `alias`, `notify`, `poll`,
|
||||
`name`, `nick`, `photo`, `network`, `rel`, `priority`,
|
||||
`writable`, `blocked`, `readonly`, `pending` )
|
||||
VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, 0, 0, 0 ) ",
|
||||
intval($uid),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($contact["canonical_url"]),
|
||||
dbesc(normalise_link($contact["canonical_url"])),
|
||||
dbesc($contact["username"]."@app.net"),
|
||||
dbesc("adn::".$contact["id"]),
|
||||
dbesc(''),
|
||||
dbesc("adn::".$contact["id"]),
|
||||
dbesc($contact["name"]),
|
||||
dbesc($contact["username"]),
|
||||
dbesc($contact["avatar_image"]["url"]),
|
||||
dbesc(NETWORK_APPNET),
|
||||
intval(CONTACT_IS_FRIEND),
|
||||
intval(1),
|
||||
intval(1)
|
||||
);
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE `alias` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc("adn::".$contact["id"]),
|
||||
intval($uid)
|
||||
);
|
||||
|
||||
if(! count($r))
|
||||
return(false);
|
||||
|
||||
$contact_id = $r[0]['id'];
|
||||
|
||||
$g = q("SELECT def_gid FROM user WHERE uid = %d LIMIT 1",
|
||||
intval($uid)
|
||||
);
|
||||
|
||||
if($g && intval($g[0]['def_gid'])) {
|
||||
require_once('include/group.php');
|
||||
group_add_member($uid,'',$contact_id,$g[0]['def_gid']);
|
||||
}
|
||||
|
||||
require_once("Photo.php");
|
||||
|
||||
$photos = import_profile_photo($contact["avatar_image"]["url"],$uid,$contact_id);
|
||||
|
||||
q("UPDATE `contact` SET `photo` = '%s',
|
||||
`thumb` = '%s',
|
||||
`micro` = '%s',
|
||||
`name-date` = '%s',
|
||||
`uri-date` = '%s',
|
||||
`avatar-date` = '%s'
|
||||
WHERE `id` = %d",
|
||||
dbesc($photos[0]),
|
||||
dbesc($photos[1]),
|
||||
dbesc($photos[2]),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact_id)
|
||||
);
|
||||
|
||||
} else {
|
||||
// update profile photos once every two weeks as we have no notification of when they change.
|
||||
|
||||
//$update_photo = (($r[0]['avatar-date'] < datetime_convert('','','now -2 days')) ? true : false);
|
||||
$update_photo = ($r[0]['avatar-date'] < datetime_convert('','','now -12 hours'));
|
||||
|
||||
// check that we have all the photos, this has been known to fail on occasion
|
||||
|
||||
if((! $r[0]['photo']) || (! $r[0]['thumb']) || (! $r[0]['micro']) || ($update_photo)) {
|
||||
|
||||
logger("appnet_fetchcontact: Updating contact ".$contact["username"], LOGGER_DEBUG);
|
||||
|
||||
require_once("Photo.php");
|
||||
|
||||
$photos = import_profile_photo($contact["avatar_image"]["url"], $uid, $r[0]['id']);
|
||||
|
||||
q("UPDATE `contact` SET `photo` = '%s',
|
||||
`thumb` = '%s',
|
||||
`micro` = '%s',
|
||||
`name-date` = '%s',
|
||||
`uri-date` = '%s',
|
||||
`avatar-date` = '%s',
|
||||
`url` = '%s',
|
||||
`nurl` = '%s',
|
||||
`addr` = '%s',
|
||||
`name` = '%s',
|
||||
`nick` = '%s'
|
||||
WHERE `id` = %d",
|
||||
dbesc($photos[0]),
|
||||
dbesc($photos[1]),
|
||||
dbesc($photos[2]),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($contact["canonical_url"]),
|
||||
dbesc(normalise_link($contact["canonical_url"])),
|
||||
dbesc($contact["username"]."@app.net"),
|
||||
dbesc($contact["username"]),
|
||||
dbesc($contact["name"]),
|
||||
intval($r[0]['id'])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return($r[0]["id"]);
|
||||
}
|
||||
|
||||
// starPost
|
||||
// unstarPost
|
||||
// repost
|
||||
// deleteRepost
|
3
appnet/templates/admin.tpl
Normal file
3
appnet/templates/admin.tpl
Normal file
|
@ -0,0 +1,3 @@
|
|||
{{include file="field_input.tpl" field=$clientid}}
|
||||
{{include file="field_input.tpl" field=$clientsecret}}
|
||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
256
appnet/test.php
Normal file
256
appnet/test.php
Normal file
|
@ -0,0 +1,256 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
|
||||
To-Do:
|
||||
|
||||
*/
|
||||
require_once("boot.php");
|
||||
|
||||
if(@is_null($a)) {
|
||||
$a = new App;
|
||||
}
|
||||
|
||||
@include(".htconfig.php");
|
||||
require_once("dba.php");
|
||||
dba::connect($db_host, $db_user, $db_pass, $db_data);
|
||||
unset($db_host, $db_user, $db_pass, $db_data);
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
require_once("addon/appnet/appnet.php");
|
||||
require_once("include/plaintext.php");
|
||||
|
||||
$b['uid'] = 1;
|
||||
|
||||
$token = get_pconfig($b['uid'],'appnet','token');
|
||||
|
||||
require_once 'addon/appnet/AppDotNet.php';
|
||||
|
||||
$clientId = get_pconfig($b["uid"],'appnet','clientid');
|
||||
$clientSecret = get_pconfig($b["uid"],'appnet','clientsecret');
|
||||
|
||||
$app = new AppDotNet($clientId, $clientSecret);
|
||||
$app->setAccessToken($token);
|
||||
|
||||
//$param = array("include_annotations" => true);
|
||||
//$param = array("include_muted" => true, "include_directed_posts" => true);
|
||||
$param = array("include_muted" => true, "include_deleted" => false, "include_directed_posts" => true,
|
||||
"include_html" => false, "include_post_annotations" => true);
|
||||
|
||||
|
||||
//$param = array("include_post_annotations" => true, "include_muted" => true, "include_directed_posts" => true);
|
||||
//$post = $app->getPost(37154801, $param);
|
||||
$post = $app->getPost(37189594, $param);
|
||||
//$post = $app->getPost(36892980, $param);
|
||||
//$post = $app->getPost(36837961, $param);
|
||||
//$post = $app->getPost(36843534, $param);
|
||||
|
||||
print_r($post);
|
||||
die();
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
|
||||
intval($b['uid']));
|
||||
|
||||
if(count($r))
|
||||
$me = $r[0];
|
||||
|
||||
$ownid = get_pconfig($b['uid'],'appnet','ownid');
|
||||
|
||||
$user = q("SELECT * FROM `user` WHERE `uid` = %d AND `account_expired` = 0 LIMIT 1",
|
||||
intval($b['uid'])
|
||||
);
|
||||
|
||||
if(count($user))
|
||||
$user = $user[0];
|
||||
|
||||
$test = appnet_createpost($a, $b['uid'], $post, $me, $user, $ownid, true, false, true);
|
||||
|
||||
print_r($test);
|
||||
|
||||
die();
|
||||
|
||||
|
||||
|
||||
/*
|
||||
$recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8');
|
||||
|
||||
$post = "♲ AdoraBelle (_Adora_Belle_@twitter.com): They are a little tied up... *rofl* @Shysarah2009 @AldiCustCare";
|
||||
|
||||
$post = str_replace($recycle, ">> ", $post);
|
||||
//$post = preg_replace("=".$recycle." (.*) \((.*)@(.*)\)=ism", ">> $1 ($2@$3)", $ppost);
|
||||
//$post = preg_replace("=".$recycle."(.*)=ism", ">> $1", $ppost);
|
||||
|
||||
die($post);
|
||||
*/
|
||||
$b["uid"] = 1;
|
||||
$b["plink"] = "https://pirati.ca/display/heluecht/2834617";
|
||||
//$b["title"] = "Wenn sich Microsoft per Telefon meldet, sollte man stutzig werden.";
|
||||
|
||||
// Image
|
||||
$b["body"] = "Nur ein kleiner Test, bitte ignorieren. (wird sowieso sofort wieder gelöscht)
|
||||
[url=https://lh3.googleusercontent.com/-5J1tGHGvELQ/U2EL_6RuAHI/AAAAAAAAX5U/71dlHNFUjXw/30.04.14%2B-%2B1][img=479x640]https://lh3.googleusercontent.com/-5J1tGHGvELQ/U2EL_6RuAHI/AAAAAAAAX5U/71dlHNFUjXw/w506-h750/30.04.14%2B-%2B1[/img]
|
||||
[/url]";
|
||||
|
||||
/*
|
||||
$b["body"] = "Übrigens: Früher #[url=http://www.dabo.de]war[/url] alles besser.
|
||||
|
||||
[bookmark=https://www.youtube.com/watch?v=-8yF9zqlpR4]SALTATIO MORTIS - Früher war alles besser | Napalm Records[/bookmark]";
|
||||
*/
|
||||
$b["body"] = "Umfrageergebnisse aus der [url=http://www.heise.de]Hölle.[/url] In [url=http://www.heise.de]Deutschland[/url] wäre das Ergebnis sicherlich ähnlich.
|
||||
[class=type-link][bookmark=http://www.zeit.de/gesellschaft/zeitgeschehen/2014-05/oesterreich-studie-fuehrer]Studie: Ein Drittel der Österreicher will einen starken Führer[/bookmark]
|
||||
[img]http://images.zeit.de/politik/ausland/2014-05/oesterreich-umfrage/oesterreich-umfrage-540x304.jpg[/img]
|
||||
[quote]Wahlen? Parlament? Nicht so wichtig, sagen viele Österreicher laut einer Umfrage. Sie wollen einen Führer, der sich um Demokratie nicht kümmern muss.[/quote]
|
||||
[/class]";
|
||||
|
||||
$b['postopts'] = "appnet";
|
||||
/*
|
||||
$b["body"] = "Dies ist ein Testposting, dass wieder gelöscht werden wird.";
|
||||
*/
|
||||
$b["body"] = "\"This is the end ...\"
|
||||
|
||||
[url=https://pirati.ca/photos/heluecht/image/4ccfc897bf2ab350e0fcce93078365f5][img]https://pirati.ca/photo/4ccfc897bf2ab350e0fcce93078365f5-2.jpg[/img][/url]";
|
||||
|
||||
$b["body"] = "[share author='Lukas' profile='https://alpha.app.net/phasenkasper' avatar='https://d2rfichhc2fb9n.cloudfront.net/image/5/1kT9xKMb9JyBVTCBnDHEaHLRUnd7InMiOiJzMyIsImIiOiJhZG4tdXNlci1hc3NldHMiLCJrIjoiYXNzZXRzL3VzZXIvZjkvM2EvNjAvZjkzYTYwMDAwMDAwMDAwMC5wbmciLCJvIjoiIn0' link='https://alpha.app.net/phasenkasper/post/32422435' posted='2014-06-12 11:42:18']
|
||||
Ich bin immer wieder begeistern wie toll mein Windows läuft. [url=https://photos.app.net/32422435/1]photos.app.net/32422435/1[/url]
|
||||
[img]https://files.app.net/1/1304673/aHwho5GfB2iXEXGGET4V3lOZVUZ5gyfFNI_CChgQ_iHYTs9sooUCIIMa3MPjLx4DHeFm3qCqEyIlo3ucFM2GDgr5SAHhJcXplNPqYGCzBxx4WP0rKxQAY65YE_tgBTaaxR5f6yMM3RzMBV6ooSH0y6zEmF0yRc6EEgn1WFaddqrSRb5XzT8ThiIspzQOy9b6m[/img][/share]";
|
||||
|
||||
$b["body"] = "Ein A380 ist jetzt nicht unbedingt das unwendigste Flugzeug, habe ich das Gefühl.
|
||||
[share author='Javier Salgado' profile='https://plus.google.com/101295635357824725690' avatar='https://lh6.googleusercontent.com/-uE1alnITTco/AAAAAAAAAAI/AAAAAAAAAcc/jXjCG51oQfg/photo.jpg?sz=50' link='https://plus.google.com/101295635357824725690/posts/CjLEs9pSWFV']Unbelievable Airbus A380 vertical Take-off + Amaz…: http://youtu.be/RJxnwF-MPi0
|
||||
[class=type-video][bookmark=http://youtu.be/RJxnwF-MPi0]Unbelievable Airbus A380 vertical Take-off + Amazing Air Show ( HD ) Paris Air show 2013[/bookmark]
|
||||
[/class][/share]";
|
||||
|
||||
/*
|
||||
require_once("include/plaintext.php");
|
||||
|
||||
$post = plaintext($a, $b, 256, false, 6);
|
||||
|
||||
print_r($post);
|
||||
|
||||
die();
|
||||
*/
|
||||
|
||||
/*
|
||||
$url = "https://pirati.ca/photos/heluecht/image/54d898d7e1a8e9ba032a5fa352f51862";
|
||||
|
||||
require_once("mod/parse_url.php");
|
||||
$data = parseurl_getsiteinfo($url, true);
|
||||
|
||||
print_r($data);
|
||||
|
||||
die();
|
||||
*/
|
||||
|
||||
//$id = 3949352;
|
||||
$id = 3949512;
|
||||
$r = q("SELECT * FROM `item` WHERE `id` = %d", intval($id));
|
||||
$b = $r[0];
|
||||
|
||||
$b['postopts'] = "appnet";
|
||||
|
||||
//$data = get_attached_data($b["body"]);
|
||||
//print_r($data);
|
||||
|
||||
$post = plaintext($a, $b, 256, false, 6);
|
||||
|
||||
print_r($post);
|
||||
|
||||
$data = appnet_create_entities($a, $b, $post);
|
||||
|
||||
print_r($data);
|
||||
|
||||
die();
|
||||
|
||||
appnet_send($a, $b);
|
||||
die();
|
||||
|
||||
|
||||
$token = get_pconfig($b['uid'],'appnet','token');
|
||||
|
||||
require_once 'addon/appnet/AppDotNet.php';
|
||||
|
||||
$clientId = get_pconfig($b["uid"],'appnet','clientid');
|
||||
$clientSecret = get_pconfig($b["uid"],'appnet','clientsecret');
|
||||
|
||||
$app = new AppDotNet($clientId, $clientSecret);
|
||||
$app->setAccessToken($token);
|
||||
|
||||
//$param = array("include_annotations" => true);
|
||||
$param = array("include_muted" => true, "include_directed_posts" => true);
|
||||
//$param = array("include_post_annotations" => true, "include_muted" => true, "include_directed_posts" => true);
|
||||
//$post = $app->getPost(32236571, $param);
|
||||
//$post = $app->getPost(32237235, $param);
|
||||
//$post = $app->getPost(32217767, $param);
|
||||
//$post = $app->getPost(32203349, $param);
|
||||
//$post = $app->getPost(32239275, $param);
|
||||
//$post = $app->getPost(32261367, $param);
|
||||
//$post = $app->getPost(32306954, $param);
|
||||
$post = $app->getPost(32926285, $param);
|
||||
|
||||
print_r($post);
|
||||
|
||||
die();
|
||||
|
||||
$lastid = @file_get_contents("addon/appnet/lastid.txt");
|
||||
$clients = @file_get_contents("addon/appnet/clients.txt");
|
||||
$users = @file_get_contents("addon/appnet/users.txt");
|
||||
|
||||
if ($lastid != "")
|
||||
$param["since_id"] = $lastid;
|
||||
|
||||
$posts = $app->getPublicPosts($param);
|
||||
|
||||
foreach ($posts AS $post) {
|
||||
$lastid = $post["id"];
|
||||
|
||||
if ((count($post["entities"]["mentions"]) == 0) AND !strstr($clients, $post["source"]["client_id"]))
|
||||
continue;
|
||||
|
||||
if ((count($post["entities"]["mentions"]) > 0) AND !strstr($clients, $post["source"]["client_id"]))
|
||||
$clients .= $post["source"]["client_id"]." - ".$post["source"]["link"]." - ".$post["source"]["name"]."\n";
|
||||
|
||||
if (!strstr($userss, $post["user"]["canonical_url"]))
|
||||
$users .= $post["user"]["canonical_url"]." - ".$post["user"]["username"]."\n";
|
||||
|
||||
echo $post["source"]["link"]." ".$post["source"]["name"]."\n";
|
||||
echo $post["user"]["username"]."\n";
|
||||
echo $post["text"]."\n";
|
||||
//print_r($post["entities"]["mentions"]);
|
||||
echo $post["id"]."\n";
|
||||
echo "---------------------------------\n";
|
||||
}
|
||||
|
||||
file_put_contents("addon/appnet/lastid.txt", $lastid);
|
||||
file_put_contents("addon/appnet/clients.txt", $clients);
|
||||
file_put_contents("addon/appnet/users.txt", $users);
|
||||
|
||||
/*
|
||||
try {
|
||||
$post = $app->getPost(323069541111, $param);
|
||||
}
|
||||
catch (AppDotNetException $e) {
|
||||
print_r(appnet_error($e->getMessage()));
|
||||
}
|
||||
*/
|
||||
|
||||
//print_r($post);
|
||||
die();
|
||||
|
||||
$data = array();
|
||||
$data["annotations"][] = array(
|
||||
"type" => "net.app.core.crosspost",
|
||||
"value" => array(
|
||||
"canonical_url" => $b["plink"]
|
||||
)
|
||||
);
|
||||
|
||||
$data["annotations"][] = array(
|
||||
"type" => "com.friendica.post",
|
||||
"value" => array(
|
||||
"raw" => $b["body2"]
|
||||
)
|
||||
);
|
||||
|
||||
$ret = $app->createPost($b["body"], $data);
|
||||
|
||||
print_r($ret);
|
254
appnet/test/ADNRecipes.php
Normal file
254
appnet/test/ADNRecipes.php
Normal file
|
@ -0,0 +1,254 @@
|
|||
<?php
|
||||
/**
|
||||
* ADNRecipes.php
|
||||
* App.net PHP library
|
||||
* https://github.com/jdolitsky/AppDotNetPHP
|
||||
*
|
||||
* This class contains some simple recipes for publishing to App.net.
|
||||
*/
|
||||
|
||||
require_once "AppDotNet.php";
|
||||
|
||||
class ADNRecipe {
|
||||
protected $_adn = null;
|
||||
|
||||
public function __construct() {
|
||||
$this->_adn = new AppDotNet(null, null);
|
||||
}
|
||||
|
||||
public function setAccessToken($access_token) {
|
||||
$this->_adn->setAccessToken($access_token);
|
||||
}
|
||||
}
|
||||
|
||||
class ADNBroadcastMessageBuilder extends ADNRecipe {
|
||||
// stores the channel ID for this message
|
||||
private $_channel_id = null;
|
||||
|
||||
// stores the headline
|
||||
private $_headline = null;
|
||||
|
||||
// stores the body text
|
||||
private $_text = null;
|
||||
|
||||
// should we parse markdown links?
|
||||
private $_parseMarkdownLinks = false;
|
||||
|
||||
// should we parse URLs out of the text body?
|
||||
private $_parseLinks = false;
|
||||
|
||||
// stores the read more link
|
||||
private $_readMoreLink = null;
|
||||
|
||||
// stores the photo filename
|
||||
private $_photo = null;
|
||||
|
||||
// stores the attachment filename
|
||||
private $_attachment = null;
|
||||
|
||||
/**
|
||||
* Sets the destination channel ID. Required.
|
||||
* @param string $channel_id The App.net Channel ID to send to. Get this
|
||||
* from the web publisher tools if you don't have one.
|
||||
*/
|
||||
public function setChannelID($channel_id) {
|
||||
$this->_channel_id = $channel_id;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getChannelID() {
|
||||
return $this->_channel_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the broadcast headline. This string shows up in the push
|
||||
* notifications which are sent to mobile apps, and is the title
|
||||
* displayed in the UI.
|
||||
* @param string $headline A short string for a headline.
|
||||
*/
|
||||
public function setHeadline($headline) {
|
||||
$this->_headline = $headline;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getHeadline() {
|
||||
return $this->_headline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the broadcast text. This string shows up as a description
|
||||
* on the broadcast detail page and in the "card" view in the
|
||||
* mobile apps. Can contain links.
|
||||
* @param string $text Broadcast body text.
|
||||
*/
|
||||
public function setText($text) {
|
||||
$this->_text = $text;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getText() {
|
||||
return $this->_text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a flag which allows links to be parsed out of body text in
|
||||
* [Markdown](http://daringfireball.net/projects/markdown/)
|
||||
* format.
|
||||
* @param bool $parseMarkdownLinks Parse markdown links.
|
||||
*/
|
||||
public function setParseMarkdownLinks($parseMarkdownLinks) {
|
||||
$this->_parseMarkdownLinks = $parseMarkdownLinks;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getParseMarkdownLinks() {
|
||||
return $this->_parseMarkdownLinks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a flag which causes bare URLs in body text to be linkified.
|
||||
* @param bool $parseLinks Parse links.
|
||||
*/
|
||||
public function setParseLinks($parseLinks) {
|
||||
$this->_parseLinks = $parseLinks;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getParseLinks() {
|
||||
return $this->_parseLinks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the URL the broadcast should link to.
|
||||
* @param string $readMoreLink Read more link URL.
|
||||
*/
|
||||
public function setReadMoreLink($readMoreLink) {
|
||||
$this->_readMoreLink = $readMoreLink;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getReadMoreLink() {
|
||||
return $this->_readMoreLink;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the filename of a photo associated with a broadcast.
|
||||
* Probably requires the php-imagick extension. File will be
|
||||
* uploaded to App.net.
|
||||
* @param string $photo Photo filename.
|
||||
*/
|
||||
public function setPhoto($photo) {
|
||||
$this->_photo = $photo;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPhoto() {
|
||||
return $this->_photo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the filename of a attachment associated with a broadcast.
|
||||
* File will be uploaded to App.net.
|
||||
* @param string $attachment Attachment filename.
|
||||
*/
|
||||
public function setAttachment($attachment) {
|
||||
$this->_attachment = $attachment;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAttachment() {
|
||||
return $this->_attachment;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the built-up broadcast.
|
||||
*/
|
||||
public function send() {
|
||||
$parseLinks = $this->_parseLinks || $this->_parseMarkdownLinks;
|
||||
$message = array(
|
||||
"annotations" => array(),
|
||||
"entities" => array(
|
||||
"parse_links" => $parseLinks,
|
||||
"parse_markdown_links" => $this->_parseMarkdownLinks,
|
||||
),
|
||||
);
|
||||
|
||||
if (isset($this->_photo)) {
|
||||
$photoFile = $this->_adn->createFile($this->_photo, array(
|
||||
type => "com.github.jdolitsky.appdotnetphp.photo",
|
||||
));
|
||||
|
||||
$message["annotations"][] = array(
|
||||
"type" => "net.app.core.oembed",
|
||||
"value" => array(
|
||||
"+net.app.core.file" => array(
|
||||
"file_id" => $photoFile["id"],
|
||||
"file_token" => $photoFile["file_token"],
|
||||
"format" => "oembed",
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($this->_attachment)) {
|
||||
if (isset($this->_attachment)) {
|
||||
$attachmentFile = $this->_adn->createFile($this->_attachment, array(
|
||||
type => "com.github.jdolitsky.appdotnetphp.attachment",
|
||||
));
|
||||
|
||||
$message["annotations"][] = array(
|
||||
"type" => "net.app.core.oembed",
|
||||
"value" => array(
|
||||
"+net.app.core.file" => array(
|
||||
"file_id" => $attachmentFile["id"],
|
||||
"file_token" => $attachmentFile["file_token"],
|
||||
"format" => "metadata",
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($this->_text)) {
|
||||
$message["text"] = $this->_text;
|
||||
} else {
|
||||
$message["machine_only"] = true;
|
||||
}
|
||||
|
||||
if (isset($this->_headline)) {
|
||||
$message["annotations"][] = array(
|
||||
"type" => "net.app.core.broadcast.message.metadata",
|
||||
"value" => array(
|
||||
"subject" => $this->_headline,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($this->_readMoreLink)) {
|
||||
$message["annotations"][] = array(
|
||||
"type" => "net.app.core.crosspost",
|
||||
"value" => array(
|
||||
"canonical_url" => $this->_readMoreLink,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return $this->_adn->createMessage($this->_channel_id, $message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
94
appnet/test/ConsumeStream.php
Executable file
94
appnet/test/ConsumeStream.php
Executable file
|
@ -0,0 +1,94 @@
|
|||
<?php
|
||||
|
||||
require_once 'AppDotNet.php';
|
||||
require_once 'EZsettings.php';
|
||||
|
||||
$app = new AppDotNet($app_clientId,$app_clientSecret);
|
||||
|
||||
// You need an app token to consume the stream, get the token returned by App.net
|
||||
// (this also sets the token)
|
||||
$token = $app->getAppAccessToken();
|
||||
|
||||
// getting a 400 error
|
||||
// 1. first check to make sure you set your app_clientId & app_clientSecret correctly
|
||||
// if that doesn't fix it, try this
|
||||
// 2. It's possible you have hit your stream limit (5 stream per app)
|
||||
// uncomment this to clear all the streams you've previously created
|
||||
//$app->deleteAllStreams();
|
||||
|
||||
// create a stream
|
||||
// if you already have a stream you can skip this step
|
||||
// this stream is going to consume posts and stars (but not follows)
|
||||
$stream = $app->createStream(array('post','star','user_follow'));
|
||||
|
||||
// you might want to save $stream['endpoint'] or $stream['id'] for later so
|
||||
// you don't have to re-create the stream
|
||||
print "stream id [".$stream['id']."]\n";
|
||||
//$stream = $app->getStream(XXX);
|
||||
|
||||
// we need to create a callback function that will do something with posts/stars
|
||||
// when they're received from the stream. This function should accept one single
|
||||
// parameter that will be the php object containing the meta / data for the event.
|
||||
|
||||
/*
|
||||
[meta] => Array
|
||||
(
|
||||
[timestamp] => 1352147672891
|
||||
[type] => post/star/etc...
|
||||
[id] => 1399341
|
||||
)
|
||||
// data is as you would expect it
|
||||
*/
|
||||
function handleEvent($event) {
|
||||
global $counters;
|
||||
$json=json_encode($event['data']);
|
||||
$counters[$event['meta']['type']]++;
|
||||
switch ($event['meta']['type']) {
|
||||
case 'post':
|
||||
print $event['meta']['is_deleted']?'p':'P';
|
||||
break;
|
||||
case 'star':
|
||||
print $event['meta']['is_deleted']?'_':'*';
|
||||
break;
|
||||
case 'user_follow':
|
||||
print $event['meta']['is_deleted']?'f':'F';
|
||||
break;
|
||||
case 'stream_marker':
|
||||
print $event['meta']['is_deleted']?'/':'=';
|
||||
break;
|
||||
case 'message':
|
||||
print $event['meta']['is_deleted']?'m':'M';
|
||||
break;
|
||||
case 'channel':
|
||||
print $event['meta']['is_deleted']?'c':'C';
|
||||
break;
|
||||
case 'channel_subscription':
|
||||
print $event['meta']['is_deleted']?'f':'F';
|
||||
break;
|
||||
default:
|
||||
print "Unknwon type [".$event['meta']['type']."]\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// register that function as the stream handler
|
||||
$app->registerStreamFunction('handleEvent');
|
||||
|
||||
// open the stream for reading
|
||||
$app->openStream($stream['endpoint']);
|
||||
|
||||
// now we want to process the stream. We have two options. If all we're doing
|
||||
// in this script is processing the stream, we can just call:
|
||||
// $app->processStreamForever();
|
||||
// otherwise you can create a loop, and call $app->processStream($milliseconds)
|
||||
// intermittently, like:
|
||||
while (true) {
|
||||
$counters=array('post'=>0,'star'=>0,'user_follow'=>0,'stream_marker'=>0,'message'=>0,'channel'=>0,'channel_subscription'=>0);
|
||||
// now we're going to process the stream for awhile (60 seconds)
|
||||
$app->processStream(60*1000000);
|
||||
echo "\n";
|
||||
// show some stats
|
||||
echo date('H:i')." [",$counters['post'],"]posts [",$counters['star'],"]stars [",$counters['user_follow'],"]follow [",$counters['stream_marker'],"]mrkrs [",$counters['message'],"]msgs /min\n";
|
||||
// then do something else...
|
||||
}
|
||||
?>
|
235
appnet/test/EZAppDotNet.php
Normal file
235
appnet/test/EZAppDotNet.php
Normal file
|
@ -0,0 +1,235 @@
|
|||
<?php
|
||||
/**
|
||||
* EZAppDotNet.php
|
||||
* Class for easy web development
|
||||
* https://github.com/jdolitsky/AppDotNetPHP
|
||||
*
|
||||
* This class does as much of the grunt work as possible in helping you to
|
||||
* access the App.net API. In theory you don't need to know anything about
|
||||
* oAuth, tokens, or all the ugly details of how it works, it should "just
|
||||
* work".
|
||||
*
|
||||
* Note this class assumes you're running a web site, and you'll be
|
||||
* accessing it via a web browser (it expects to be able to do things like
|
||||
* cookies and sessions). If you're not using a web browser in your App.net
|
||||
* application, or you want more fine grained control over what's being
|
||||
* done for you, use the included AppDotNet class, which does much
|
||||
* less automatically.
|
||||
*/
|
||||
|
||||
// comment these two lines out in production
|
||||
//error_reporting(E_ALL);
|
||||
//ini_set('display_errors', 1);
|
||||
|
||||
//require_once 'EZsettings.php';
|
||||
require_once 'AppDotNet.php';
|
||||
|
||||
// comment this out if session is started elsewhere
|
||||
//session_start();
|
||||
|
||||
class EZAppDotNet extends AppDotNet {
|
||||
|
||||
private $_callbacks = array();
|
||||
private $_autoShutdownStreams = array();
|
||||
|
||||
public function __construct($clientId=null,$clientSecret=null) {
|
||||
global $app_clientId,$app_clientSecret;
|
||||
|
||||
// if client id wasn't passed, and it's in the settings.php file, use it from there
|
||||
if (!$clientId && isset($app_clientId)) {
|
||||
|
||||
// if it's still the default, warn them
|
||||
if ($app_clientId == 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') {
|
||||
throw new AppDotNetException('You must change the values defined in EZsettings.php');
|
||||
}
|
||||
|
||||
$clientId = $app_clientId;
|
||||
$clientSecret = $app_clientSecret;
|
||||
}
|
||||
|
||||
// call the parent with the variables we have
|
||||
parent::__construct($clientId,$clientSecret);
|
||||
|
||||
// set up ez streaming
|
||||
$this->registerStreamFunction(array($this,'streamEZCallback'));
|
||||
|
||||
// make sure we cleanup/destroy any streams when we exit
|
||||
register_shutdown_function(array($this,'stopStreaming'));
|
||||
}
|
||||
|
||||
public function getAuthUrl($redirectUri=null,$scope=null) {
|
||||
global $app_redirectUri,$app_scope;
|
||||
|
||||
if (is_null($redirectUri)) {
|
||||
$redirectUri = $app_redirectUri;
|
||||
}
|
||||
if (is_null($scope)) {
|
||||
$scope = $app_scope;
|
||||
}
|
||||
return parent::getAuthUrl($redirectUri,$scope);
|
||||
}
|
||||
|
||||
// user login
|
||||
public function setSession($cookie=0,$callback=null) {
|
||||
|
||||
if (!isset($callback)) {
|
||||
global $app_redirectUri;
|
||||
$cb=$app_redirectUri;
|
||||
} else {
|
||||
$cb=$callback;
|
||||
}
|
||||
|
||||
// try and set the token the original way (eg: if they're logging in)
|
||||
$token = $this->getAccessToken($cb);
|
||||
|
||||
// if that didn't work, check to see if there's an existing token stored somewhere
|
||||
if (!$token) {
|
||||
$token = $this->getSession();
|
||||
}
|
||||
|
||||
$_SESSION['AppDotNetPHPAccessToken']=$token;
|
||||
|
||||
// if they want to stay logged in via a cookie, set the cookie
|
||||
if ($token && $cookie) {
|
||||
$cookie_lifetime = time()+(60*60*24*7);
|
||||
setcookie('AppDotNetPHPAccessToken',$token,$cookie_lifetime);
|
||||
}
|
||||
|
||||
return $token;
|
||||
}
|
||||
|
||||
// check if user is logged in
|
||||
public function getSession() {
|
||||
|
||||
// first check for cookie
|
||||
if (isset($_COOKIE['AppDotNetPHPAccessToken']) && $_COOKIE['AppDotNetPHPAccessToken'] != 'expired') {
|
||||
$this->setAccessToken($_COOKIE['AppDotNetPHPAccessToken']);
|
||||
return $_COOKIE['AppDotNetPHPAccessToken'];
|
||||
}
|
||||
|
||||
// else check the session for the token (from a previous page load)
|
||||
else if (isset($_SESSION['AppDotNetPHPAccessToken'])) {
|
||||
$this->setAccessToken($_SESSION['AppDotNetPHPAccessToken']);
|
||||
return $_SESSION['AppDotNetPHPAccessToken'];
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// log the user out
|
||||
public function deleteSession() {
|
||||
// clear the session
|
||||
unset($_SESSION['AppDotNetPHPAccessToken']);
|
||||
|
||||
// unset the cookie
|
||||
setcookie('AppDotNetPHPAccessToken', null, 1);
|
||||
|
||||
// clear the access token
|
||||
$this->setAccessToken(null);
|
||||
|
||||
// done!
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a callback function to be called whenever an event of a certain
|
||||
* type is received from the app.net streaming API. Your function will recieve
|
||||
* a PHP associative array containing an app.net object. You must register at
|
||||
* least one callback function before starting to stream (otherwise your data
|
||||
* would simply be discarded). You can register multiple event types and even
|
||||
* multiple functions per event (just call this method as many times as needed).
|
||||
* If you register multiple functions for a single event, each will be called
|
||||
* every time an event of that type is received.
|
||||
*
|
||||
* Note you should not be doing any significant processing in your callback
|
||||
* functions. Doing so could cause your scripts to fall behind the stream and
|
||||
* risk getting disconnected. Ideally your callback functions should simply
|
||||
* drop the data into a file or database to be collected and processed by
|
||||
* another program.
|
||||
* @param string $type The type of even your callback would like to recieve.
|
||||
* At time of writing the possible options are 'post', 'star', 'user_follow'.
|
||||
*/
|
||||
public function registerStreamCallback($type,$callback) {
|
||||
switch ($type) {
|
||||
case 'post':
|
||||
case 'star':
|
||||
case 'user_follow':
|
||||
if (!array_key_exists($type,$this->_callbacks)) {
|
||||
$this->_callbacks[$type] = array();
|
||||
}
|
||||
$this->_callbacks[$type][] = $callback;
|
||||
return true;
|
||||
break;
|
||||
default:
|
||||
throw new AppDotNetException('Unknown callback type: '.$type);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the easy way to start streaming. Register some callback functions
|
||||
* using registerCallback(), then call startStreaming(). Every time the stream
|
||||
* gets sent a type of object you have a callback for, your callback function(s)
|
||||
* will be called with the proper data. When your script exits the streams will
|
||||
* be cleaned up (deleted).
|
||||
*
|
||||
* Do not use this method if you want to spread out streams across multiple
|
||||
* processes or multiple servers, since the first script that exits/crashes will
|
||||
* delete the streams for everyone else. Instead use createStream() and openStream().
|
||||
* @return true
|
||||
* @see AppDotNetStream::stopStreaming()
|
||||
* @see AppDotNetStream::createStream()
|
||||
* @see AppDotNetStream::openStream()
|
||||
*/
|
||||
public function startStreaming() {
|
||||
// only listen for object types that we have registered callbacks for
|
||||
if (!$this->_callbacks) {
|
||||
throw new AppDotNetException('You must register at least one callback function before calling startStreaming');
|
||||
}
|
||||
// if there's already a stream running, don't allow another
|
||||
if ($this->_currentStream) {
|
||||
throw new AppDotNetException('There is already a stream being consumed, only one stream can be consumed per AppDotNetStream instance');
|
||||
}
|
||||
$stream = $this->createStream(array_keys($this->_callbacks));
|
||||
// when the script exits, delete this stream (if it's still around)
|
||||
$this->_autoShutdownStreams[] = $response['id'];
|
||||
// start consuming
|
||||
$this->openStream($response['id']);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the easy way to stop streaming and cleans up the no longer needed stream.
|
||||
* This method will be called automatically if you started streaming using
|
||||
* startStreaming().
|
||||
*
|
||||
* Do not use this method if you want to spread out streams across multiple
|
||||
* processes or multiple servers, since it will delete the streams for everyone
|
||||
* else. Instead use closeStream().
|
||||
* @return true
|
||||
* @see AppDotNetStream::startStreaming()
|
||||
* @see AppDotNetStream::deleteStream()
|
||||
* @see AppDotNetStream::closeStream()
|
||||
*/
|
||||
public function stopStreaming() {
|
||||
$this->closeStream();
|
||||
// delete any auto streams
|
||||
foreach ($this->_autoShutdownStreams as $streamId) {
|
||||
$this->deleteStream($streamId);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal function used to make your streaming easier. I hope.
|
||||
*/
|
||||
protected function streamEZCallback($type,$data) {
|
||||
// if there are defined callbacks for this object type, then...
|
||||
if (array_key_exists($type,$this->_callbacks)) {
|
||||
// loop through the callbacks notifying each one in turn
|
||||
foreach ($this->_callbacks[$type] as $callback) {
|
||||
call_user_func($callback,$data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
25
appnet/test/EZsettings.php
Normal file
25
appnet/test/EZsettings.php
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
// change these values to your own in order to use EZAppDotNet
|
||||
$app_clientId = 'js4qF6UN4fwXTK87Ax9Bjf3DhEQuK5hA';
|
||||
$app_clientSecret = 'Z4hsLHh82d5cQAwNVD2uZtNg3WqFxLXF';
|
||||
|
||||
// this must be one of the URLs defined in your App.net application settings
|
||||
$app_redirectUri = 'https://pirati.ca/addon/appnetpost/appnet.php';
|
||||
|
||||
// An array of permissions you're requesting from the user.
|
||||
// As a general rule you should only request permissions you need for your app.
|
||||
// By default all permissions are commented out, meaning you'll have access
|
||||
// to their basic profile only. Uncomment the ones you need.
|
||||
$app_scope = array(
|
||||
'basic', // See basic user info (default, required: may be given if not specified)
|
||||
'stream', // Read the user's personalized stream
|
||||
// 'email', // Access the user's email address
|
||||
'write_post', // Post on behalf of the user
|
||||
// 'follow', // Follow and unfollow other users
|
||||
'public_messages', // Send and receive public messages as this user
|
||||
'messages', // Send and receive public and private messages as this user
|
||||
// 'update_profile', // Update a user’s name, images, and other profile information
|
||||
// 'files', // Manage a user’s files. This is not needed for uploading files.
|
||||
// 'export', // Export all user data (shows a warning)
|
||||
);
|
106
appnet/test/backup/appnet.php
Normal file
106
appnet/test/backup/appnet.php
Normal file
|
@ -0,0 +1,106 @@
|
|||
<?php
|
||||
/*
|
||||
* login_with_buffer.php
|
||||
*
|
||||
* @(#) $Id: login_with_buffer.php,v 1.1 2014/03/17 09:45:08 mlemos Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Get the http.php file from http://www.phpclasses.org/httpclient
|
||||
*/
|
||||
require('http.php');
|
||||
require('oauth_client.php');
|
||||
|
||||
$client = new oauth_client_class;
|
||||
$client->debug = true;
|
||||
$client->debug_http = true;
|
||||
$client->server = '';
|
||||
|
||||
$client->oauth_version = '2.0';
|
||||
$client->dialog_url = 'https://account.app.net/oauth/authenticate?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&response_type=code&state={STATE}';
|
||||
$client->access_token_url = 'https://account.app.net/oauth/access_token';
|
||||
|
||||
$client->redirect_uri = 'https://'.$_SERVER['HTTP_HOST'].
|
||||
dirname(strtok($_SERVER['REQUEST_URI'],'?')).'/appnet.php';
|
||||
|
||||
$client->client_id = 'js4qF6UN4fwXTK87Ax9Bjf3DhEQuK5hA'; $application_line = __LINE__;
|
||||
$client->client_secret = 'Z4hsLHh82d5cQAwNVD2uZtNg3WqFxLXF ';
|
||||
|
||||
if(strlen($client->client_id) == 0
|
||||
|| strlen($client->client_secret) == 0)
|
||||
die('Please create an application in App.net Apps page '.
|
||||
'https://bufferapp.com/developers/apps/create '.
|
||||
' and in the line '.$application_line.
|
||||
' set the client_id to Client ID and client_secret with Client'.
|
||||
' Secret');
|
||||
|
||||
//$client->access_token = 'AQAAAAAACzfmWzVa5o69CFJrV-fBt9PLkV9sd9_0BnnHTI02_NGvvsZDCgz-38eA5_yAgu9AwaFcUzFp0qdCj4y2svy6qUl42g';
|
||||
|
||||
/* API permissions
|
||||
*/
|
||||
$client->scope = '';
|
||||
if(($success = $client->Initialize()))
|
||||
{
|
||||
if(($success = $client->Process()))
|
||||
{
|
||||
if(strlen($client->access_token))
|
||||
{;
|
||||
$success = $client->CallAPI(
|
||||
'https://api.app.net/users/me',
|
||||
'GET', array(), array('FailOnAccessError'=>true, 'RequestBody'=>true), $user);
|
||||
/*
|
||||
$params["text"] = "Nur ein Test";
|
||||
$params["profile_ids"][] = "52b844df9db82271330000b8";
|
||||
//$params["profile_ids"][] = "5280e86b5b3c91d77b0000dd";
|
||||
//$params["profile_ids"][] = "52b844ed9db82271330000bc";
|
||||
//$params["profile_ids"][] = "52b8463d9db822db340000e1";
|
||||
$params["shorten"] = false;
|
||||
$params["now"] = false;
|
||||
print_r($params);
|
||||
$success = $client->CallAPI(
|
||||
'https://api.bufferapp.com/1/updates/create.json',
|
||||
'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user);
|
||||
*/
|
||||
}
|
||||
}
|
||||
$success = $client->Finalize($success);
|
||||
}
|
||||
if($client->exit)
|
||||
exit;
|
||||
|
||||
if($success)
|
||||
{
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>App.net OAuth client results</title>
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
echo '<h1>', HtmlSpecialChars($user->name),
|
||||
' you have logged in successfully with App.net!</h1>';
|
||||
echo '<pre>', HtmlSpecialChars(print_r($user, 1)), '</pre>';
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>OAuth client error</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>OAuth client error</h1>
|
||||
<pre>Error: <?php echo HtmlSpecialChars($client->error); ?></pre>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
}
|
||||
|
||||
?>
|
2122
appnet/test/backup/http.php
Normal file
2122
appnet/test/backup/http.php
Normal file
File diff suppressed because it is too large
Load diff
2486
appnet/test/backup/oauth_client.php
Normal file
2486
appnet/test/backup/oauth_client.php
Normal file
File diff suppressed because it is too large
Load diff
272
appnet/test/backup/oauth_configuration.json
Normal file
272
appnet/test/backup/oauth_configuration.json
Normal file
|
@ -0,0 +1,272 @@
|
|||
{
|
||||
"version": "$Id: oauth_configuration.json,v 1.6 2014/04/12 10:24:01 mlemos Exp $",
|
||||
"comments": [
|
||||
"The servers entry should be an object with a list of object",
|
||||
"entries, one for each server type. The server object entry name is",
|
||||
"the name of the server type. Each server entry is an object with",
|
||||
"some mandatory properties: oauth_version, dialog_url,",
|
||||
"access_token_url and request_token_url (just for Oauth 1.0 and",
|
||||
"1.0a). Check the OAuth client class for the complete list of server",
|
||||
"properties."
|
||||
],
|
||||
"servers":
|
||||
{
|
||||
"37Signals":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://launchpad.37signals.com/authorization/new?type=web_server&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&state={STATE}&scope={SCOPE}",
|
||||
"access_token_url": "https://launchpad.37signals.com/authorization/token?type=web_server"
|
||||
},
|
||||
|
||||
"Amazon":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://www.amazon.com/ap/oa?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&response_type=code&state={STATE}",
|
||||
"access_token_url": "https://api.amazon.com/auth/o2/token"
|
||||
},
|
||||
|
||||
"Bitbucket":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "https://bitbucket.org/!api/1.0/oauth/request_token",
|
||||
"dialog_url": "https://bitbucket.org/!api/1.0/oauth/authenticate",
|
||||
"access_token_url": "https://bitbucket.org/!api/1.0/oauth/access_token",
|
||||
"url_parameters": false
|
||||
},
|
||||
|
||||
"Box":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://www.box.com/api/oauth2/authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&state={STATE}&scope={SCOPE}",
|
||||
"offline_dialog_url": "https://www.box.com/api/oauth2/authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&state={STATE}&access_type=offline&approval_prompt=force",
|
||||
"access_token_url": "https://www.box.com/api/oauth2/token"
|
||||
},
|
||||
|
||||
"Buffer":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://bufferapp.com/oauth2/authorize?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&state={STATE}&scope={SCOPE}",
|
||||
"access_token_url": "https://api.bufferapp.com/1/oauth2/token.json"
|
||||
},
|
||||
|
||||
"Dailymotion":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://api.dailymotion.com/oauth/authorize?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&state={STATE}&scope={SCOPE}",
|
||||
"access_token_url": "https://api.dailymotion.com/oauth/token"
|
||||
},
|
||||
|
||||
"Discogs":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "http://api.discogs.com/oauth/request_token",
|
||||
"dialog_url": "http://www.discogs.com/oauth/authorize",
|
||||
"access_token_url": "http://api.discogs.com/oauth/access_token"
|
||||
},
|
||||
|
||||
"Disqus":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://disqus.com/api/oauth/2.0/authorize/?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}",
|
||||
"access_token_url": "https://disqus.com/api/oauth/2.0/access_token/"
|
||||
},
|
||||
|
||||
"Dropbox":
|
||||
{
|
||||
"oauth_version": "1.0",
|
||||
"request_token_url": "https://api.dropbox.com/1/oauth/request_token",
|
||||
"dialog_url": "https://www.dropbox.com/1/oauth/authorize",
|
||||
"access_token_url": "https://api.dropbox.com/1/oauth/access_token",
|
||||
"authorization_header": false
|
||||
},
|
||||
|
||||
"Dropbox2":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://www.dropbox.com/1/oauth2/authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}",
|
||||
"access_token_url": "https://www.dropbox.com/1/oauth2/token"
|
||||
},
|
||||
|
||||
"Etsy":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "https://openapi.etsy.com/v2/oauth/request_token?scope={SCOPE}",
|
||||
"dialog_url": "automatic",
|
||||
"access_token_url": "https://openapi.etsy.com/v2/oauth/access_token"
|
||||
},
|
||||
|
||||
"Eventful":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "http://eventful.com/oauth/request_token",
|
||||
"dialog_url": "http://eventful.com/oauth/authorize",
|
||||
"access_token_url": "http://eventful.com/oauth/access_token",
|
||||
"authorization_header": false,
|
||||
"url_parameters": true,
|
||||
"token_request_method": "POST"
|
||||
},
|
||||
|
||||
"Evernote":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "https://sandbox.evernote.com/oauth",
|
||||
"dialog_url": "https://sandbox.evernote.com/OAuth.action",
|
||||
"access_token_url": "https://sandbox.evernote.com/oauth",
|
||||
"url_parameters": true,
|
||||
"authorization_header": false
|
||||
},
|
||||
|
||||
"Fitbit":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "http://api.fitbit.com/oauth/request_token",
|
||||
"dialog_url": "http://api.fitbit.com/oauth/authorize",
|
||||
"access_token_url": "http://api.fitbit.com/oauth/access_token"
|
||||
},
|
||||
|
||||
"Flickr":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "http://www.flickr.com/services/oauth/request_token",
|
||||
"dialog_url": "http://www.flickr.com/services/oauth/authorize?perms={SCOPE}",
|
||||
"access_token_url": "http://www.flickr.com/services/oauth/access_token",
|
||||
"authorization_header": false
|
||||
},
|
||||
|
||||
"Foursquare":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://foursquare.com/oauth2/authorize?client_id={CLIENT_ID}&scope={SCOPE}&response_type=code&redirect_uri={REDIRECT_URI}&state={STATE}",
|
||||
"access_token_url": "https://foursquare.com/oauth2/access_token",
|
||||
"access_token_parameter": "oauth_token"
|
||||
},
|
||||
|
||||
"Google1":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"dialog_url": "https://www.google.com/accounts/OAuthAuthorizeToken",
|
||||
"access_token_url": "https://www.google.com/accounts/OAuthGetAccessToken",
|
||||
"request_token_url": "https://www.google.com/accounts/OAuthGetRequestToken?scope={SCOPE}"
|
||||
},
|
||||
|
||||
"Instagram":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://api.instagram.com/oauth/authorize/?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&response_type=code&state={STATE}",
|
||||
"access_token_url": "https://api.instagram.com/oauth/access_token"
|
||||
},
|
||||
|
||||
"Rdio":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "http://api.rdio.com/oauth/request_token",
|
||||
"dialog_url": "https://www.rdio.com/oauth/authorize",
|
||||
"access_token_url": "http://api.rdio.com/oauth/access_token"
|
||||
},
|
||||
|
||||
"Reddit":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://ssl.reddit.com/api/v1/authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}",
|
||||
"offline_dialog_url": "https://ssl.reddit.com/api/v1/authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}&duration=permanent",
|
||||
"access_token_url": "https://ssl.reddit.com/api/v1/access_token",
|
||||
"access_token_authentication": "basic"
|
||||
},
|
||||
|
||||
"RightSignature":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "https://rightsignature.com/oauth/request_token",
|
||||
"dialog_url": "https://rightsignature.com/oauth/authorize",
|
||||
"access_token_url": "https://rightsignature.com/oauth/access_token",
|
||||
"authorization_header": false
|
||||
},
|
||||
|
||||
"Salesforce":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}",
|
||||
"access_token_url": "https://login.salesforce.com/services/oauth2/token",
|
||||
"default_access_token_type": "Bearer",
|
||||
"store_access_token_response": true
|
||||
},
|
||||
|
||||
"Scoop.it":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "https://www.scoop.it/oauth/request",
|
||||
"dialog_url": "https://www.scoop.it/oauth/authorize",
|
||||
"access_token_url": "https://www.scoop.it/oauth/access",
|
||||
"authorization_header": false
|
||||
},
|
||||
|
||||
"StockTwits":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://api.stocktwits.com/api/2/oauth/authorize?client_id={CLIENT_ID}&response_type=code&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}",
|
||||
"access_token_url": "https://api.stocktwits.com/api/2/oauth/token"
|
||||
},
|
||||
|
||||
"SurveyMonkey":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://api.surveymonkey.net/oauth/authorize?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&state={STATE}&api_key={API_KEY}&scope={SCOPE}",
|
||||
"access_token_url": "https://api.surveymonkey.net/oauth/token?api_key={API_KEY}"
|
||||
},
|
||||
|
||||
"Tumblr":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "http://www.tumblr.com/oauth/request_token",
|
||||
"dialog_url": "http://www.tumblr.com/oauth/authorize",
|
||||
"access_token_url": "http://www.tumblr.com/oauth/access_token"
|
||||
},
|
||||
|
||||
"Vimeo":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://api.vimeo.com/oauth/authorize?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&state={STATE}&scope={SCOPE}",
|
||||
"access_token_url": "https://api.vimeo.com/oauth/access_token"
|
||||
},
|
||||
|
||||
"VK":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://oauth.vk.com/authorize?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}",
|
||||
"access_token_url": "https://oauth.vk.com/access_token"
|
||||
},
|
||||
|
||||
"Withings":
|
||||
{
|
||||
"oauth_version": "1.0",
|
||||
"request_token_url": "https://oauth.withings.com/account/request_token",
|
||||
"dialog_url": "https://oauth.withings.com/account/authorize",
|
||||
"access_token_url": "https://oauth.withings.com/account/access_token",
|
||||
"authorization_header": false
|
||||
},
|
||||
|
||||
"Wordpress":
|
||||
{
|
||||
"oauth_version": "2.0",
|
||||
"dialog_url": "https://public-api.wordpress.com/oauth2/authorize?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&state={STATE}&scope={SCOPE}",
|
||||
"access_token_url": "https://public-api.wordpress.com/oauth2/token"
|
||||
},
|
||||
|
||||
"Xero":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "https://api.xero.com/oauth/RequestToken",
|
||||
"dialog_url": "https://api.xero.com/oauth/Authorize",
|
||||
"access_token_url": "https://api.xero.com/oauth/AccessToken"
|
||||
},
|
||||
|
||||
"XING":
|
||||
{
|
||||
"oauth_version": "1.0a",
|
||||
"request_token_url": "https://api.xing.com/v1/request_token",
|
||||
"dialog_url": "https://api.xing.com/v1/authorize",
|
||||
"access_token_url": "https://api.xing.com/v1/access_token",
|
||||
"authorization_header": false
|
||||
}
|
||||
}
|
||||
}
|
BIN
appnet/test/master.zip
Normal file
BIN
appnet/test/master.zip
Normal file
Binary file not shown.
29
appnet/test2.php
Executable file
29
appnet/test2.php
Executable file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
require_once("boot.php");
|
||||
|
||||
if(@is_null($a)) {
|
||||
$a = new App;
|
||||
}
|
||||
|
||||
@include(".htconfig.php");
|
||||
require_once("dba.php");
|
||||
dba::connect($db_host, $db_user, $db_pass, $db_data);
|
||||
unset($db_host, $db_user, $db_pass, $db_data);
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
$items = q("select * from item where id=3602849");
|
||||
|
||||
$b = $items[0];
|
||||
$b["body"] = "[vimeo]http://vimeo.com/91121293[/vimeo]";
|
||||
|
||||
$b["body"] = "[share author='KueltuertageAugsburg' profile='https://twitter.com/KueltuertageA' avatar='https://pbs.twimg.com/profile_images/1575855154/logo_kueltuerverein_brief_normal.jpg' link='https://twitter.com/KueltuertageA/status/424977769080958976']Da will eine 'Bürgerinitiative Ausländerstopp' in #Augsburg zur [url=http://www.heise.de]Kommunalwahl[/url] antreten.[/share]";
|
||||
|
||||
|
||||
require_once("include/plaintext.php");
|
||||
require_once("addon/appnet/appnet.php");
|
||||
$post = plaintext($a, $b, 256, false, 6);
|
||||
$text = appnet_create_entities($a, $b, $post);
|
||||
|
||||
//print_r($post);
|
||||
echo $text;
|
6284
appnet/users.txt
Normal file
6284
appnet/users.txt
Normal file
File diff suppressed because it is too large
Load diff
19
cal/LICENSE
Normal file
19
cal/LICENSE
Normal file
|
@ -0,0 +1,19 @@
|
|||
Copyright (c) 2013 Tobias Diekershoff
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
29
cal/README.md
Normal file
29
cal/README.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
Calendar Export
|
||||
===============
|
||||
|
||||
This addon makes it possible to export the events posted by your users,
|
||||
so they can be imported into other calendar applications.
|
||||
|
||||
Exporting a calendar is an _opt-in_ feature which has to be activated by each
|
||||
of the users in the _addon settings_. As the admin you can only provide the
|
||||
service but should not force it upon your users.
|
||||
|
||||
The calendars are exported at
|
||||
|
||||
http://example.com/cal/username/export/format
|
||||
|
||||
currently the following formats are supported
|
||||
|
||||
* ical
|
||||
* csv.
|
||||
|
||||
Author
|
||||
------
|
||||
|
||||
This addon is developed by [Tobias Diekershoff](https://f.diekershoff.de/profile/tobias).
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
This addon is licensed under the [MIT](http://opensource.org/licenses/MIT)
|
||||
license, see also the LICENSE file in the addon directory.
|
200
cal/cal.php
Normal file
200
cal/cal.php
Normal file
|
@ -0,0 +1,200 @@
|
|||
<?php
|
||||
/********************************************************************
|
||||
* Name: Calendar Export
|
||||
* Description: This addon exports the public events of your users as calendar files
|
||||
* Version: 0.1
|
||||
* Author: Tobias Diekershoff <https://f.diekershoff.de/profile/tobias>
|
||||
* License: MIT
|
||||
* Status: Unsupported
|
||||
* ******************************************************************/
|
||||
|
||||
|
||||
function cal_install()
|
||||
{
|
||||
register_hook('plugin_settings', 'addon/cal/cal.php', 'cal_addon_settings');
|
||||
register_hook('plugin_settings_post', 'addon/cal/cal.php', 'cal_addon_settings_post');
|
||||
}
|
||||
function cal_uninstall()
|
||||
{
|
||||
unregister_hook('plugin_settings', 'addon/cal/cal.php', 'cal_addon_settings');
|
||||
unregister_hook('plugin_settings_post', 'addon/cal/cal.php', 'cal_addon_settings_post');
|
||||
}
|
||||
function cal_module()
|
||||
{
|
||||
}
|
||||
/* pathes
|
||||
* /cal/$user/export/$format
|
||||
* currently supported formats are ical (iCalendar) and CSV
|
||||
*/
|
||||
function cal_content()
|
||||
{
|
||||
$a = get_app();
|
||||
$o = "";
|
||||
if ($a->argc == 1) {
|
||||
$o .= "<h3>".t('Event Export')."</h3><p>".t('You can download public events from: ').$a->get_baseurl()."/cal/username/export/ical</p>";
|
||||
} elseif ($a->argc==4) {
|
||||
// get the parameters from the request we just received
|
||||
$username = $a->argv[1];
|
||||
$do = $a->argv[2];
|
||||
$format = $a->argv[3];
|
||||
// check that there is a user matching the requested profile
|
||||
$r = q("SELECT uid FROM user WHERE nickname='".$username."' LIMIT 1;");
|
||||
if (count($r))
|
||||
{
|
||||
$uid = $r[0]['uid'];
|
||||
} else {
|
||||
killme();
|
||||
}
|
||||
// if we shall do anything other then export, end here
|
||||
if (! $do == 'export' )
|
||||
killme();
|
||||
// check if the user allows us to share the profile
|
||||
$enable = get_pconfig( $uid, 'cal', 'enable');
|
||||
if (! $enable == 1) {
|
||||
info(t('The user does not export the calendar.'));
|
||||
return;
|
||||
}
|
||||
// we are allowed to show events
|
||||
// get the timezone the user is in
|
||||
$r = q("SELECT timezone FROM user WHERE uid=".$uid." LIMIT 1;");
|
||||
if (count($r))
|
||||
$timezone = $r[0]['timezone'];
|
||||
// does the user who requests happen to be the owner of the events
|
||||
// requested? then show all of your events, otherwise only those that
|
||||
// don't have limitations set in allow_cid and allow_gid
|
||||
if (local_user() == $uid) {
|
||||
$r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location` FROM `event` WHERE `uid`=".$uid." and `cid`=0;");
|
||||
} else {
|
||||
$r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location` FROM `event` WHERE `allow_cid`='' and `allow_gid`='' and `uid`='".$uid."' and `cid`='0';");
|
||||
}
|
||||
// we have the events that are available for the requestor
|
||||
// now format the output according to the requested format
|
||||
$res = cal_format_output($r, $format, $timezone);
|
||||
if (! $res=='')
|
||||
info($res);
|
||||
} else {
|
||||
// wrong number of parameters
|
||||
killme();
|
||||
}
|
||||
return $o;
|
||||
}
|
||||
|
||||
function cal_format_output ($r, $f, $tz)
|
||||
{
|
||||
$res = t('This calendar format is not supported');
|
||||
switch ($f)
|
||||
{
|
||||
// format the exported data as a CSV file
|
||||
case "csv":
|
||||
header("Content-type: text/csv");
|
||||
$o = '"Subject", "Start Date", "Start Time", "Description", "End Date", "End Time", "Location"' . PHP_EOL;
|
||||
foreach ($r as $rr) {
|
||||
// TODO the time / date entries don't include any information about the
|
||||
// timezone the event is scheduled in :-/
|
||||
$tmp1 = strtotime($rr['start']);
|
||||
$tmp2 = strtotime($rr['finish']);
|
||||
$time_format = "%H:%M:%S";
|
||||
$date_format = "%Y-%m-%d";
|
||||
$o .= '"'.$rr['summary'].'", "'.strftime($date_format, $tmp1) .
|
||||
'", "'.strftime($time_format, $tmp1).'", "'.$rr['desc'] .
|
||||
'", "'.strftime($date_format, $tmp2) .
|
||||
'", "'.strftime($time_format, $tmp2) .
|
||||
'", "'.$rr['location'].'"' . PHP_EOL;
|
||||
}
|
||||
echo $o;
|
||||
killme();
|
||||
|
||||
case "ical":
|
||||
header("Content-type: text/ics");
|
||||
$o = 'BEGIN:VCALENDAR'. PHP_EOL
|
||||
. 'VERSION:2.0' . PHP_EOL
|
||||
. 'PRODID:-//friendica calendar export//0.1//EN' . PHP_EOL;
|
||||
// TODO include timezone informations in cases were the time is not in UTC
|
||||
// see http://tools.ietf.org/html/rfc2445#section-4.8.3
|
||||
// . 'BEGIN:VTIMEZONE' . PHP_EOL
|
||||
// . 'TZID:' . $tz . PHP_EOL
|
||||
// . 'END:VTIMEZONE' . PHP_EOL;
|
||||
// TODO instead of PHP_EOL CRLF should be used for long entries
|
||||
// but test your solution against http://icalvalid.cloudapp.net/
|
||||
// also long lines SHOULD be split at 75 characters length
|
||||
foreach ($r as $rr) {
|
||||
if ($rr['adjust'] == 1) {
|
||||
$UTC = 'Z';
|
||||
} else {
|
||||
$UTC = '';
|
||||
}
|
||||
$o .= 'BEGIN:VEVENT' . PHP_EOL;
|
||||
if ($rr[start]) {
|
||||
$tmp = strtotime($rr['start']);
|
||||
$dtformat = "%Y%m%dT%H%M%S".$UTC;
|
||||
$o .= 'DTSTART:'.strftime($dtformat, $tmp).PHP_EOL;
|
||||
}
|
||||
if ($rr['finish']) {
|
||||
$tmp = strtotime($rr['finish']);
|
||||
$dtformat = "%Y%m%dT%H%M%S".$UTC;
|
||||
$o .= 'DTEND:'.strftime($dtformat, $tmp).PHP_EOL;
|
||||
}
|
||||
if ($rr['summary'])
|
||||
$tmp = $rr['summary'];
|
||||
$tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
|
||||
$tmp = addcslashes($tmp, ',;');
|
||||
$o .= 'SUMMARY:' . $tmp . PHP_EOL;
|
||||
if ($rr['desc'])
|
||||
$tmp = $rr['desc'];
|
||||
$tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
|
||||
$tmp = addcslashes($tmp, ',;');
|
||||
$o .= 'DESCRIPTION:' . $tmp . PHP_EOL;
|
||||
if ($rr['location']) {
|
||||
$tmp = $rr['location'];
|
||||
$tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
|
||||
$tmp = addcslashes($tmp, ',;');
|
||||
$o .= 'LOCATION:' . $tmp . PHP_EOL;
|
||||
}
|
||||
$o .= 'END:VEVENT' . PHP_EOL;
|
||||
}
|
||||
$o .= 'END:VCALENDAR' . PHP_EOL;
|
||||
echo $o;
|
||||
killme();
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
function cal_addon_settings_post ( &$a, &$b )
|
||||
{
|
||||
if (! local_user())
|
||||
return;
|
||||
|
||||
if (!x($_POST,'cal-submit'))
|
||||
return;
|
||||
|
||||
set_pconfig(local_user(),'cal','enable',intval($_POST['cal-enable']));
|
||||
}
|
||||
function cal_addon_settings ( &$a, &$s )
|
||||
{
|
||||
if (! local_user())
|
||||
return;
|
||||
|
||||
$enabled = get_pconfig(local_user(), 'cal', 'enable');
|
||||
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||
$url = $a->get_baseurl().'/cal/'.$a->user['nickname'].'/export/<em>format</em>';
|
||||
|
||||
$s .= '<span id="settings_cal_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_cal_expanded\'); openClose(\'settings_cal_inflated\');">';
|
||||
$s .= '<h3>'.t('Export Events').'</h3>';
|
||||
$s .= '</span>';
|
||||
$s .= '<div id="settings_cal_expanded" class="settings-block" style="display: none;">';
|
||||
$s .= '<span class="fakelink" onclick="openClose(\'settings_cal_expanded\'); openClose(\'settings_cal_inflated\');">';
|
||||
$s .= '<h3>'.t('Export Events').'</h3>';
|
||||
$s .= '</span>';
|
||||
|
||||
$s .= '<div id="cal-wrapper">';
|
||||
$s .= '<p>'.t('If this is enabled, your public events will be available at').' <strong>'.$url.'</strong></p>';
|
||||
$s .= '<p>'.t('Currently supported formats are ical and csv.').'</p>';
|
||||
$s .= '<label id="cal-enable-label" for="cal-checkbox">'. t('Enable calendar export') .'</label>';
|
||||
$s .= '<input id="cal-checkbox" type="checkbox" name="cal-enable" value="1" ' . $checked . '/>';
|
||||
$s .= '<div class="settings-submit-wrapper" ><input type="submit" name="cal-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
|
||||
$s .= '<div class="clear"></div>';
|
||||
$s .= '</div>';
|
||||
$s .= '</div>';
|
||||
}
|
||||
|
||||
?>
|
54
cal/lang/C/messages.po
Normal file
54
cal/lang/C/messages.po
Normal file
|
@ -0,0 +1,54 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr ""
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr ""
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr ""
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr ""
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr ""
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr ""
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr ""
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr ""
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr ""
|
12
cal/lang/C/strings.php
Normal file
12
cal/lang/C/strings.php
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
;
|
||||
$a->strings["Event Export"] = "";
|
||||
$a->strings["You can download public events from: "] = "";
|
||||
$a->strings["The user does not export the calendar."] = "";
|
||||
$a->strings["This calendar format is not supported"] = "";
|
||||
$a->strings["Export Events"] = "";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "";
|
||||
$a->strings["Enable calendar export"] = "";
|
||||
$a->strings["Submit"] = "";
|
56
cal/lang/cs/messages.po
Normal file
56
cal/lang/cs/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Michal Šupler <msupler@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2014-09-07 11:04+0000\n"
|
||||
"Last-Translator: Michal Šupler <msupler@gmail.com>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/projects/p/friendica/language/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr "Export událostí"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr "Veřejné události si můžete stánout z:"
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr "Uživatel kalenář neexportuje."
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr "Tento kalendářový formát není podporován."
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr "Export událostí"
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr "Pokud je toto povoleno, vaše veřejné události budou viditelné na"
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr "Aktuálně podporované formáty jsou ical a csv."
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr "Povolit export kalendáře"
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr "Uložit Nastavení"
|
16
cal/lang/cs/strings.php
Normal file
16
cal/lang/cs/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_cs")) {
|
||||
function string_plural_select_cs($n){
|
||||
return ($n==1) ? 0 : ($n>=2 && $n<=4) ? 1 : 2;;
|
||||
}}
|
||||
;
|
||||
$a->strings["Event Export"] = "Export událostí";
|
||||
$a->strings["You can download public events from: "] = "Veřejné události si můžete stánout z:";
|
||||
$a->strings["The user does not export the calendar."] = "Uživatel kalenář neexportuje.";
|
||||
$a->strings["This calendar format is not supported"] = "Tento kalendářový formát není podporován.";
|
||||
$a->strings["Export Events"] = "Export událostí";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "Pokud je toto povoleno, vaše veřejné události budou viditelné na";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "Aktuálně podporované formáty jsou ical a csv.";
|
||||
$a->strings["Enable calendar export"] = "Povolit export kalendáře";
|
||||
$a->strings["Save Settings"] = "Uložit Nastavení";
|
56
cal/lang/de/messages.po
Normal file
56
cal/lang/de/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# bavatar <tobias.diekershoff@gmx.net>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2014-09-28 10:39+0000\n"
|
||||
"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/friendica/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr "Ereignis Export"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr "Du kannst öffentliche Ereignisse hier herunterladen;"
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr "Diese_r Nutzer_in exportiert den Kalender nicht."
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr "Dieses Kalenderformat wird nicht unterstützt."
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr "Exportiere Ereignisse"
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr "Wenn dies aktiviert ist, werden alle öffentliche Ereignisse unter folgender URL verfügbar sein"
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr "Derzeit werden die Formate ical und csv unterstützt."
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr "Kalenderexport aktivieren"
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr "Einstellungen speichern"
|
16
cal/lang/de/strings.php
Normal file
16
cal/lang/de/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_de")) {
|
||||
function string_plural_select_de($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Event Export"] = "Ereignis Export";
|
||||
$a->strings["You can download public events from: "] = "Du kannst öffentliche Ereignisse hier herunterladen;";
|
||||
$a->strings["The user does not export the calendar."] = "Diese_r Nutzer_in exportiert den Kalender nicht.";
|
||||
$a->strings["This calendar format is not supported"] = "Dieses Kalenderformat wird nicht unterstützt.";
|
||||
$a->strings["Export Events"] = "Exportiere Ereignisse";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "Wenn dies aktiviert ist, werden alle öffentliche Ereignisse unter folgender URL verfügbar sein";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "Derzeit werden die Formate ical und csv unterstützt.";
|
||||
$a->strings["Enable calendar export"] = "Kalenderexport aktivieren";
|
||||
$a->strings["Save Settings"] = "Einstellungen speichern";
|
55
cal/lang/es/messages.po
Normal file
55
cal/lang/es/messages.po
Normal file
|
@ -0,0 +1,55 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2016-10-10 20:48+0000\n"
|
||||
"Last-Translator: Athalbert\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr "Exportación de evento"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr "Puede descargar eventos públicos desde:"
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr "El usuario no exporta el calendario."
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr "No se soporta este formato de calendario"
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr "Exportar Eventos"
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr "Si esto está habilitado, sus eventos públicos estarán permitidos en"
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr "Los formatos soportados actualmente son ical y csv."
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr "Habilitar exportar calendario"
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr "Guardar Ajustes"
|
16
cal/lang/es/strings.php
Normal file
16
cal/lang/es/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_es")) {
|
||||
function string_plural_select_es($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Event Export"] = "Exportación de evento";
|
||||
$a->strings["You can download public events from: "] = "Puede descargar eventos públicos desde:";
|
||||
$a->strings["The user does not export the calendar."] = "El usuario no exporta el calendario.";
|
||||
$a->strings["This calendar format is not supported"] = "No se soporta este formato de calendario";
|
||||
$a->strings["Export Events"] = "Exportar Eventos";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "Si esto está habilitado, sus eventos públicos estarán permitidos en";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "Los formatos soportados actualmente son ical y csv.";
|
||||
$a->strings["Enable calendar export"] = "Habilitar exportar calendario";
|
||||
$a->strings["Save Settings"] = "Guardar Ajustes";
|
56
cal/lang/fr/messages.po
Normal file
56
cal/lang/fr/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Tubuntu <tubuntu@testimonium.be>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2014-09-07 09:24+0000\n"
|
||||
"Last-Translator: Tubuntu <tubuntu@testimonium.be>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/friendica/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr "Exportation d'événement"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr "Vous pouvez télécharger les événements publiques de :"
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr "L'utilisateur n'exporte pas le calendrier."
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr "Ce format de calendrier n'est pas pris en charge"
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr "Exporter les événements"
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr "Si activé, vos événements publiques seront disponible à"
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr "Les formats actuellement pris en charge sont ical et csv."
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr "Activer l'export de calendrier"
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr "Sauvegarder les paramètres"
|
16
cal/lang/fr/strings.php
Normal file
16
cal/lang/fr/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
return ($n > 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Event Export"] = "Exportation d'événement";
|
||||
$a->strings["You can download public events from: "] = "Vous pouvez télécharger les événements publiques de :";
|
||||
$a->strings["The user does not export the calendar."] = "L'utilisateur n'exporte pas le calendrier.";
|
||||
$a->strings["This calendar format is not supported"] = "Ce format de calendrier n'est pas pris en charge";
|
||||
$a->strings["Export Events"] = "Exporter les événements";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "Si activé, vos événements publiques seront disponible à";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "Les formats actuellement pris en charge sont ical et csv.";
|
||||
$a->strings["Enable calendar export"] = "Activer l'export de calendrier";
|
||||
$a->strings["Save Settings"] = "Sauvegarder les paramètres";
|
56
cal/lang/it/messages.po
Normal file
56
cal/lang/it/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# fabrixxm <fabrix.xm@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2014-09-10 10:30+0000\n"
|
||||
"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr "Esporta Evento"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr "Puoi scaricare gli eventi publici da:"
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr "L'utente non esporta il calendario."
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr "Il formato del calendario non è supportato"
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr "Esporta Eventi"
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr "Se abilitato, i tuoi eventi pubblici saranno disponibili a"
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr "I formati supportati sono ical e csv."
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr "Abilita esporazione calendario"
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr "Salva Impostazioni"
|
16
cal/lang/it/strings.php
Normal file
16
cal/lang/it/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_it")) {
|
||||
function string_plural_select_it($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Event Export"] = "Esporta Evento";
|
||||
$a->strings["You can download public events from: "] = "Puoi scaricare gli eventi publici da:";
|
||||
$a->strings["The user does not export the calendar."] = "L'utente non esporta il calendario.";
|
||||
$a->strings["This calendar format is not supported"] = "Il formato del calendario non è supportato";
|
||||
$a->strings["Export Events"] = "Esporta Eventi";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "Se abilitato, i tuoi eventi pubblici saranno disponibili a";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "I formati supportati sono ical e csv.";
|
||||
$a->strings["Enable calendar export"] = "Abilita esporazione calendario";
|
||||
$a->strings["Save Settings"] = "Salva Impostazioni";
|
57
cal/lang/pt-br/messages.po
Normal file
57
cal/lang/pt-br/messages.po
Normal file
|
@ -0,0 +1,57 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# John Brazil, 2015
|
||||
# Sérgio Lima <oigreslima@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2015-01-31 01:24+0000\n"
|
||||
"Last-Translator: John Brazil\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/friendica/language/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr "Exportar Evento"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr "Você pode baixar eventos públicos de:"
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr "O usuário não exportou o calendário."
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr "Esse formato de calendário não é suportado."
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr "Exporta Eventos"
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr "Se isso estiver habiltiado, seus eventos públicos estarão disponíveis"
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr "Os formatos disponíveis atualmente são ical e csv."
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr "Habilite exportar calendário"
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr "Salvar as Configurações"
|
16
cal/lang/pt-br/strings.php
Normal file
16
cal/lang/pt-br/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_pt_br")) {
|
||||
function string_plural_select_pt_br($n){
|
||||
return ($n > 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Event Export"] = "Exportar Evento";
|
||||
$a->strings["You can download public events from: "] = "Você pode baixar eventos públicos de:";
|
||||
$a->strings["The user does not export the calendar."] = "O usuário não exportou o calendário.";
|
||||
$a->strings["This calendar format is not supported"] = "Esse formato de calendário não é suportado.";
|
||||
$a->strings["Export Events"] = "Exporta Eventos";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "Se isso estiver habiltiado, seus eventos públicos estarão disponíveis";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "Os formatos disponíveis atualmente são ical e csv.";
|
||||
$a->strings["Enable calendar export"] = "Habilite exportar calendário";
|
||||
$a->strings["Save Settings"] = "Salvar as Configurações";
|
56
cal/lang/ro/messages.po
Normal file
56
cal/lang/ro/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Doru DEACONU <dumitrudeaconu@yahoo.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2014-11-27 14:13+0000\n"
|
||||
"Last-Translator: Doru DEACONU <dumitrudeaconu@yahoo.com>\n"
|
||||
"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ro_RO\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr "Exportare Eveniment"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr "Puteți descărca evenimente publice de la:"
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr "Utilizatorul nu își exportă calendarul."
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr "Acest format de calendar nu este acceptat"
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr "Exportați Evenimente"
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr "Dacă este activat, evenimente dvs publice vor fi disponibile pe"
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr "Formate acceptate în prezent sunt ical şi csv."
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr "Activați exportarea calendarului"
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr "Salvare Configurări"
|
16
cal/lang/ro/strings.php
Normal file
16
cal/lang/ro/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_ro")) {
|
||||
function string_plural_select_ro($n){
|
||||
return ($n==1?0:((($n%100>19)||(($n%100==0)&&($n!=0)))?2:1));;
|
||||
}}
|
||||
;
|
||||
$a->strings["Event Export"] = "Exportare Eveniment";
|
||||
$a->strings["You can download public events from: "] = "Puteți descărca evenimente publice de la:";
|
||||
$a->strings["The user does not export the calendar."] = "Utilizatorul nu își exportă calendarul.";
|
||||
$a->strings["This calendar format is not supported"] = "Acest format de calendar nu este acceptat";
|
||||
$a->strings["Export Events"] = "Exportați Evenimente";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "Dacă este activat, evenimente dvs publice vor fi disponibile pe";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "Formate acceptate în prezent sunt ical şi csv.";
|
||||
$a->strings["Enable calendar export"] = "Activați exportarea calendarului";
|
||||
$a->strings["Save Settings"] = "Salvare Configurări";
|
56
cal/lang/ru/messages.po
Normal file
56
cal/lang/ru/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Stanislav N. <pztrn@pztrn.name>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2017-04-08 17:06+0000\n"
|
||||
"Last-Translator: Stanislav N. <pztrn@pztrn.name>\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr "Экспорт событий"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr "Вы можете скачать публичные события из:"
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr "Пользователь не экспортировал календарь."
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr "Этот формат календарей не поддерживается"
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr "Экспорт событий"
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr "Если эта настройка включена, то ваши публичные события будут доступны на:"
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr "Текущие поддерживаемые форматы ical и csv."
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr "Включить экспорт календаря"
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr "Сохранить настройки"
|
16
cal/lang/ru/strings.php
Normal file
16
cal/lang/ru/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_ru")) {
|
||||
function string_plural_select_ru($n){
|
||||
return ($n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<12 || $n%100>14) ? 1 : $n%10==0 || ($n%10>=5 && $n%10<=9) || ($n%100>=11 && $n%100<=14)? 2 : 3);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Event Export"] = "Экспорт событий";
|
||||
$a->strings["You can download public events from: "] = "Вы можете скачать публичные события из:";
|
||||
$a->strings["The user does not export the calendar."] = "Пользователь не экспортировал календарь.";
|
||||
$a->strings["This calendar format is not supported"] = "Этот формат календарей не поддерживается";
|
||||
$a->strings["Export Events"] = "Экспорт событий";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "Если эта настройка включена, то ваши публичные события будут доступны на:";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "Текущие поддерживаемые форматы ical и csv.";
|
||||
$a->strings["Enable calendar export"] = "Включить экспорт календаря";
|
||||
$a->strings["Save Settings"] = "Сохранить настройки";
|
56
cal/lang/zh-cn/messages.po
Normal file
56
cal/lang/zh-cn/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
|||
# ADDON cal
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica cal addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# mytbk <mytbk920423@gmail.com>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2017-10-02 05:52+0000\n"
|
||||
"Last-Translator: mytbk <mytbk920423@gmail.com>\n"
|
||||
"Language-Team: Chinese (China) (http://www.transifex.com/Friendica/friendica/language/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "Event Export"
|
||||
msgstr "事件导出"
|
||||
|
||||
#: cal.php:33
|
||||
msgid "You can download public events from: "
|
||||
msgstr "你可以从这里下载公开事件:"
|
||||
|
||||
#: cal.php:53
|
||||
msgid "The user does not export the calendar."
|
||||
msgstr "这个用户没有导出日历。"
|
||||
|
||||
#: cal.php:83
|
||||
msgid "This calendar format is not supported"
|
||||
msgstr "不支持这个日历格式"
|
||||
|
||||
#: cal.php:181 cal.php:185
|
||||
msgid "Export Events"
|
||||
msgstr "导出事件"
|
||||
|
||||
#: cal.php:189
|
||||
msgid "If this is enabled, your public events will be available at"
|
||||
msgstr "如果这个被启用,你的公开事件会在"
|
||||
|
||||
#: cal.php:190
|
||||
msgid "Currently supported formats are ical and csv."
|
||||
msgstr "当前支持的格式是 ical 和 csv."
|
||||
|
||||
#: cal.php:191
|
||||
msgid "Enable calendar export"
|
||||
msgstr "启用日历导出"
|
||||
|
||||
#: cal.php:193
|
||||
msgid "Save Settings"
|
||||
msgstr "保存设置"
|
16
cal/lang/zh-cn/strings.php
Normal file
16
cal/lang/zh-cn/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_zh_cn")) {
|
||||
function string_plural_select_zh_cn($n){
|
||||
return 0;;
|
||||
}}
|
||||
;
|
||||
$a->strings["Event Export"] = "事件导出";
|
||||
$a->strings["You can download public events from: "] = "你可以从这里下载公开事件:";
|
||||
$a->strings["The user does not export the calendar."] = "这个用户没有导出日历。";
|
||||
$a->strings["This calendar format is not supported"] = "不支持这个日历格式";
|
||||
$a->strings["Export Events"] = "导出事件";
|
||||
$a->strings["If this is enabled, your public events will be available at"] = "如果这个被启用,你的公开事件会在";
|
||||
$a->strings["Currently supported formats are ical and csv."] = "当前支持的格式是 ical 和 csv.";
|
||||
$a->strings["Enable calendar export"] = "启用日历导出";
|
||||
$a->strings["Save Settings"] = "保存设置";
|
7
convpath/README
Executable file
7
convpath/README
Executable file
|
@ -0,0 +1,7 @@
|
|||
convpath
|
||||
|
||||
This addon converts all internal paths according to the current scheme.
|
||||
|
||||
That means that if a page is called via https then all internal links are also converted into https.
|
||||
|
||||
Same happens when you call your page with http.
|
102
convpath/convpath.php
Normal file
102
convpath/convpath.php
Normal file
|
@ -0,0 +1,102 @@
|
|||
<?php
|
||||
/**
|
||||
* Name: Convert Paths
|
||||
* Description: Converts all internal paths according to the current scheme (http or https)
|
||||
* Version: 1.0
|
||||
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
|
||||
* Status: Unsupported
|
||||
*/
|
||||
|
||||
function convpath_install() {
|
||||
register_hook('page_end', 'addon/convpath/convpath.php', 'convpath_page_end');
|
||||
register_hook('page_header', 'addon/convpath/convpath.php', 'convpath_page_header');
|
||||
register_hook('ping_xmlize', 'addon/convpath/convpath.php', 'convpath_ping_xmlize_hook');
|
||||
register_hook('prepare_body', 'addon/convpath/convpath.php', 'convpath_prepare_body_hook');
|
||||
register_hook('display_item', 'addon/convpath/convpath.php', 'convpath_display_item_hook');
|
||||
}
|
||||
|
||||
|
||||
function convpath_uninstall() {
|
||||
unregister_hook('page_end', 'addon/convpath/convpath.php', 'convpath_page_end');
|
||||
unregister_hook('page_header', 'addon/convpath/convpath.php', 'convpath_page_header');
|
||||
unregister_hook('ping_xmlize', 'addon/convpath/convpath.php', 'convpath_ping_xmlize_hook');
|
||||
unregister_hook('prepare_body', 'addon/convpath/convpath.php', 'convpath_prepare_body_hook');
|
||||
unregister_hook('display_item', 'addon/convpath/convpath.php', 'convpath_display_item_hook');
|
||||
}
|
||||
|
||||
function convpath_ping_xmlize_hook(&$a, &$o) {
|
||||
$o["photo"] = convpath_url($a, $o["photo"]);
|
||||
}
|
||||
|
||||
function convpath_page_header(&$a, &$o){
|
||||
$o = convpath_convert($o);
|
||||
}
|
||||
|
||||
function convpath_page_end(&$a, &$o){
|
||||
$o = convpath_convert($o);
|
||||
if (isset($a->page['aside']))
|
||||
$a->page['aside'] = convpath_convert($a->page['aside']);
|
||||
}
|
||||
|
||||
function convpath_prepare_body_hook(&$a, &$o) {
|
||||
$o["html"] = convpath_convert($o["html"]);
|
||||
}
|
||||
|
||||
function convpath_display_item_hook(&$a, &$o) {
|
||||
if (isset($o["output"])) {
|
||||
if (isset($o["output"]["thumb"]))
|
||||
$o["output"]["thumb"] = convpath_url($a, $o["output"]["thumb"]);
|
||||
if (isset($o["output"]["author-avatar"]))
|
||||
$o["output"]["author-avatar"] = convpath_url($a, $o["output"]["author-avatar"]);
|
||||
if (isset($o["output"]["owner-avatar"]))
|
||||
$o["output"]["owner-avatar"] = convpath_url($a, $o["output"]["owner-avatar"]);
|
||||
if (isset($o["output"]["owner_photo"]))
|
||||
$o["output"]["owner_photo"] = convpath_url($a, $o["output"]["owner_photo"]);
|
||||
}
|
||||
}
|
||||
|
||||
function convpath_url($a, $path) {
|
||||
if ($path == "")
|
||||
return("");
|
||||
|
||||
$ssl = (substr($a->get_baseurl(), 0, 8) == "https://");
|
||||
|
||||
if ($ssl) {
|
||||
$search = "http://".$a->get_hostname();
|
||||
$replace = "https://".$a->get_hostname();
|
||||
} else {
|
||||
$search = "https://".$a->get_hostname();
|
||||
$replace = "http://".$a->get_hostname();
|
||||
}
|
||||
|
||||
$path = str_replace($search, $replace, $path);
|
||||
|
||||
return($path);
|
||||
}
|
||||
|
||||
/*
|
||||
Converts a given path according to the current scheme
|
||||
*/
|
||||
function convpath_convert($path) {
|
||||
global $a;
|
||||
|
||||
if ($path == "")
|
||||
return("");
|
||||
|
||||
$ssl = (substr($a->get_baseurl(), 0, 8) == "https://");
|
||||
|
||||
if ($ssl) {
|
||||
$search = "http://".$a->get_hostname();
|
||||
$replace = "https://".$a->get_hostname();
|
||||
} else {
|
||||
$search = "https://".$a->get_hostname();
|
||||
$replace = "http://".$a->get_hostname();
|
||||
}
|
||||
$searcharr = array("src='".$search, 'src="'.$search);
|
||||
$replacearr = array("src='".$replace, 'src="'.$replace);
|
||||
$path = str_replace($searcharr, $replacearr, $path);
|
||||
|
||||
//$path = str_replace($search, $replace, $path);
|
||||
|
||||
return($path);
|
||||
}
|
0
convpath/lang/C/messages.po
Normal file
0
convpath/lang/C/messages.po
Normal file
7
defaultfeatures/README
Normal file
7
defaultfeatures/README
Normal file
|
@ -0,0 +1,7 @@
|
|||
Default Features Plugin
|
||||
|
||||
This plugin allows the site admin to choose which Additional Features
|
||||
are on by default for newly created users on the site. The defaults
|
||||
apply to all new users upon registration, but do not impact a user's
|
||||
ability to turn features on/off once their account has been created.
|
||||
These default settings do not impact existing users.
|
60
defaultfeatures/defaultfeatures.php
Executable file
60
defaultfeatures/defaultfeatures.php
Executable file
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
/**
|
||||
* Name: Default Features
|
||||
* Description: Choose which Additional Features are on by default for new users on the site.
|
||||
* Version: 1.0
|
||||
* Author: Michael Johnston
|
||||
* Status: Unsupported
|
||||
*/
|
||||
|
||||
function defaultfeatures_install() {
|
||||
register_hook('register_account', 'addon/defaultfeatures/defaultfeatures.php', 'defaultfeatures_register');
|
||||
logger("installed defaultfeatures plugin");
|
||||
}
|
||||
|
||||
function defaultfeatures_uninstall() {
|
||||
unregister_hook('register_account', 'addon/defaultfeatures/defaultfeatures.php', 'defaultfeatures_register');
|
||||
logger("uninstalled defaultfeatures plugin");
|
||||
}
|
||||
|
||||
function defaultfeatures_register($a, $newuid) {
|
||||
$arr = array();
|
||||
$features = get_features();
|
||||
foreach($features as $fname => $fdata) {
|
||||
foreach(array_slice($fdata,1) as $f) {
|
||||
set_pconfig($newuid,'feature',$f[0],((intval(get_config('defaultfeatures',$f[0]))) ? "1" : "0"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function defaultfeatures_plugin_admin_post (&$a) {
|
||||
check_form_security_token_redirectOnErr('/admin/plugins/defaultfeatures', 'defaultfeaturessave');
|
||||
foreach($_POST as $k => $v) {
|
||||
if(strpos($k,'feature_') === 0) {
|
||||
set_config('defaultfeatures',substr($k,8),((intval($v)) ? 1 : 0));
|
||||
}
|
||||
}
|
||||
info( t('Features updated') . EOL);
|
||||
}
|
||||
|
||||
function defaultfeatures_plugin_admin (&$a, &$o) {
|
||||
$t = get_markup_template( "admin.tpl", "addon/defaultfeatures/" );
|
||||
$token = get_form_security_token("defaultfeaturessave");
|
||||
$arr = array();
|
||||
$features = get_features();
|
||||
foreach($features as $fname => $fdata) {
|
||||
$arr[$fname] = array();
|
||||
$arr[$fname][0] = $fdata[0];
|
||||
foreach(array_slice($fdata,1) as $f) {
|
||||
$arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(get_config('defaultfeatures',$f[0]))) ? "1" : "0"),$f[2],array(t('Off'),t('On')));
|
||||
}
|
||||
}
|
||||
|
||||
//logger("Features: " . print_r($arr,true));
|
||||
|
||||
$o = replace_macros($t, array(
|
||||
'$submit' => t('Save Settings'),
|
||||
'$features' => $arr,
|
||||
'$form_security_token' => $token
|
||||
));
|
||||
}
|
34
defaultfeatures/lang/C/messages.po
Normal file
34
defaultfeatures/lang/C/messages.po
Normal file
|
@ -0,0 +1,34 @@
|
|||
# ADDON defaultfeatures
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica defaultfeatures addon package.
|
||||
#
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-23 14:44+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: defaultfeatures.php:36
|
||||
msgid "Features updated"
|
||||
msgstr ""
|
||||
|
||||
#: defaultfeatures.php:48
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
|
||||
#: defaultfeatures.php:48
|
||||
msgid "On"
|
||||
msgstr ""
|
||||
|
||||
#: defaultfeatures.php:55
|
||||
msgid "Save Settings"
|
||||
msgstr ""
|
14
defaultfeatures/templates/admin.tpl
Normal file
14
defaultfeatures/templates/admin.tpl
Normal file
|
@ -0,0 +1,14 @@
|
|||
{{*
|
||||
* AUTOMATICALLY GENERATED TEMPLATE
|
||||
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||
*
|
||||
*}}
|
||||
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
|
||||
{{foreach $features as $f}}
|
||||
<h3 class="settings-heading">{{$f.0}}</h3>
|
||||
|
||||
{{foreach $f.1 as $fcat}}
|
||||
{{include file="field_yesno.tpl" field=$fcat}}
|
||||
{{/foreach}}
|
||||
{{/foreach}}
|
||||
<div class="submit"><input type="submit" name="defaultfeatures-submit" value="{{$submit}}" /></div>
|
14
editplain/editplain.css
Executable file
14
editplain/editplain.css
Executable file
|
@ -0,0 +1,14 @@
|
|||
|
||||
|
||||
|
||||
#editplain-enable-label {
|
||||
float: left;
|
||||
width: 200px;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
#editplain-checkbox {
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
86
editplain/editplain.php
Executable file
86
editplain/editplain.php
Executable file
|
@ -0,0 +1,86 @@
|
|||
<?php
|
||||
/**
|
||||
* Name: Editplain
|
||||
* Description: This addon is deprecated and has been replaced with the "Advanced Features" setting. Admins should remove this addon when their core code is updated to include advanced feature settings.
|
||||
* Version: 1.0
|
||||
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
||||
* Status: Unsupported
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
function editplain_install() {
|
||||
|
||||
register_hook('plugin_settings', 'addon/editplain/editplain.php', 'editplain_settings');
|
||||
register_hook('plugin_settings_post', 'addon/editplain/editplain.php', 'editplain_settings_post');
|
||||
|
||||
logger("installed editplain");
|
||||
}
|
||||
|
||||
|
||||
function editplain_uninstall() {
|
||||
|
||||
unregister_hook('plugin_settings', 'addon/editplain/editplain.php', 'editplain_settings');
|
||||
unregister_hook('plugin_settings_post', 'addon/editplain/editplain.php', 'editplain_settings_post');
|
||||
|
||||
|
||||
logger("removed editplain");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Callback from the settings post function.
|
||||
* $post contains the $_POST array.
|
||||
* We will make sure we've got a valid user account
|
||||
* and if so set our configuration setting for this person.
|
||||
*
|
||||
*/
|
||||
|
||||
function editplain_settings_post($a,$post) {
|
||||
if(! local_user() || (! x($_POST,'editplain-submit')))
|
||||
return;
|
||||
set_pconfig(local_user(),'system','plaintext',intval($_POST['editplain']));
|
||||
|
||||
info( t('Editplain settings updated.') . EOL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Called from the Plugin Setting form.
|
||||
* Add our own settings info to the page.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
function editplain_settings(&$a,&$s) {
|
||||
|
||||
if(! local_user())
|
||||
return;
|
||||
|
||||
/* Add our stylesheet to the page so we can make our settings look nice */
|
||||
|
||||
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/editplain/editplain.css' . '" media="all" />' . "\r\n";
|
||||
|
||||
/* Get the current state of our config variable */
|
||||
|
||||
$enabled = get_pconfig(local_user(),'system','plaintext');
|
||||
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||
|
||||
/* Add some HTML to the existing form */
|
||||
|
||||
$s .= '<div class="settings-block">';
|
||||
$s .= '<h3>' . t('Editplain Settings') . '</h3>';
|
||||
$s .= '<div id="editplain-enable-wrapper">';
|
||||
$s .= '<label id="editplain-enable-label" for="editplain-checkbox">' . t('Disable richtext status editor') . '</label>';
|
||||
$s .= '<input id="editplain-checkbox" type="checkbox" name="editplain" value="1" ' . $checked . '/>';
|
||||
$s .= '</div><div class="clear"></div>';
|
||||
|
||||
/* provide a submit button */
|
||||
|
||||
$s .= '<div class="settings-submit-wrapper" ><input type="submit" name="editplain-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div></div>';
|
||||
|
||||
}
|
34
editplain/lang/C/messages.po
Normal file
34
editplain/lang/C/messages.po
Normal file
|
@ -0,0 +1,34 @@
|
|||
# ADDON editplain
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||
#
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: editplain.php:46
|
||||
msgid "Editplain settings updated."
|
||||
msgstr ""
|
||||
|
||||
#: editplain.php:76
|
||||
msgid "Editplain Settings"
|
||||
msgstr ""
|
||||
|
||||
#: editplain.php:78
|
||||
msgid "Disable richtext status editor"
|
||||
msgstr ""
|
||||
|
||||
#: editplain.php:84
|
||||
msgid "Submit"
|
||||
msgstr ""
|
6
editplain/lang/ca/strings.php
Normal file
6
editplain/lang/ca/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
$a->strings["Editplain settings updated."] = "Actualitzar la configuració de Editplain.";
|
||||
$a->strings["Editplain Settings"] = "Configuració de Editplain";
|
||||
$a->strings["Disable richtext status editor"] = "Deshabilitar l'editor d'estatus de texte enriquit";
|
||||
$a->strings["Submit"] = "Enviar";
|
36
editplain/lang/cs/messages.po
Normal file
36
editplain/lang/cs/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
|||
# ADDON editplain
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Michal Šupler <msupler@gmail.com>, 2014-2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||
"PO-Revision-Date: 2015-02-11 19:40+0000\n"
|
||||
"Last-Translator: Michal Šupler <msupler@gmail.com>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/projects/p/friendica/language/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
|
||||
#: editplain.php:46
|
||||
msgid "Editplain settings updated."
|
||||
msgstr "Editplain nastavení aktualizováno"
|
||||
|
||||
#: editplain.php:76
|
||||
msgid "Editplain Settings"
|
||||
msgstr "Editplain nastavení"
|
||||
|
||||
#: editplain.php:78
|
||||
msgid "Disable richtext status editor"
|
||||
msgstr "Zakázat richtext status editor"
|
||||
|
||||
#: editplain.php:84
|
||||
msgid "Submit"
|
||||
msgstr "Odeslat"
|
11
editplain/lang/cs/strings.php
Normal file
11
editplain/lang/cs/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_cs")) {
|
||||
function string_plural_select_cs($n){
|
||||
return ($n==1) ? 0 : ($n>=2 && $n<=4) ? 1 : 2;;
|
||||
}}
|
||||
;
|
||||
$a->strings["Editplain settings updated."] = "Editplain nastavení aktualizováno";
|
||||
$a->strings["Editplain Settings"] = "Editplain nastavení";
|
||||
$a->strings["Disable richtext status editor"] = "Zakázat richtext status editor";
|
||||
$a->strings["Submit"] = "Odeslat";
|
37
editplain/lang/de/messages.po
Normal file
37
editplain/lang/de/messages.po
Normal file
|
@ -0,0 +1,37 @@
|
|||
# ADDON editplain
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Abrax <webmaster@a-zwenkau.de>, 2014
|
||||
# bavatar <tobias.diekershoff@gmx.net>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||
"PO-Revision-Date: 2014-10-15 12:19+0000\n"
|
||||
"Last-Translator: Abrax <webmaster@a-zwenkau.de>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/friendica/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: editplain.php:46
|
||||
msgid "Editplain settings updated."
|
||||
msgstr "Editplain Einstellungen gespeichert."
|
||||
|
||||
#: editplain.php:76
|
||||
msgid "Editplain Settings"
|
||||
msgstr "Editplain Einstellungen"
|
||||
|
||||
#: editplain.php:78
|
||||
msgid "Disable richtext status editor"
|
||||
msgstr "Web-Editor für Beiträge deakivieren"
|
||||
|
||||
#: editplain.php:84
|
||||
msgid "Submit"
|
||||
msgstr "Senden"
|
11
editplain/lang/de/strings.php
Normal file
11
editplain/lang/de/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_de")) {
|
||||
function string_plural_select_de($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Editplain settings updated."] = "Editplain Einstellungen gespeichert.";
|
||||
$a->strings["Editplain Settings"] = "Editplain Einstellungen";
|
||||
$a->strings["Disable richtext status editor"] = "Web-Editor für Beiträge deakivieren";
|
||||
$a->strings["Submit"] = "Senden";
|
6
editplain/lang/eo/strings.php
Normal file
6
editplain/lang/eo/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
$a->strings["Editplain settings updated."] = "Ĝisdatigis la Editplain agordojn.";
|
||||
$a->strings["Editplain Settings"] = "Agordoj por Editplain";
|
||||
$a->strings["Disable richtext status editor"] = "Malŝalti la riĉteksto-redaktilon";
|
||||
$a->strings["Submit"] = "Sendi";
|
36
editplain/lang/es/messages.po
Normal file
36
editplain/lang/es/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
|||
# ADDON editplain
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Alberto Díaz Tormo <albertodiaztormo@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||
"PO-Revision-Date: 2016-10-23 11:35+0000\n"
|
||||
"Last-Translator: Alberto Díaz Tormo <albertodiaztormo@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: editplain.php:46
|
||||
msgid "Editplain settings updated."
|
||||
msgstr "Ajustes de edición sencillos actualizados."
|
||||
|
||||
#: editplain.php:76
|
||||
msgid "Editplain Settings"
|
||||
msgstr "Ajustes de edición sencillos"
|
||||
|
||||
#: editplain.php:78
|
||||
msgid "Disable richtext status editor"
|
||||
msgstr "Desactivar el editor de texto enriquecido del estatus"
|
||||
|
||||
#: editplain.php:84
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
11
editplain/lang/es/strings.php
Normal file
11
editplain/lang/es/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_es")) {
|
||||
function string_plural_select_es($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Editplain settings updated."] = "Ajustes de edición sencillos actualizados.";
|
||||
$a->strings["Editplain Settings"] = "Ajustes de edición sencillos";
|
||||
$a->strings["Disable richtext status editor"] = "Desactivar el editor de texto enriquecido del estatus";
|
||||
$a->strings["Submit"] = "Enviar";
|
36
editplain/lang/fr/messages.po
Normal file
36
editplain/lang/fr/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
|||
# ADDON editplain
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Nicola Spanti <translations@nicola-spanti.info>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||
"PO-Revision-Date: 2015-07-27 18:13+0000\n"
|
||||
"Last-Translator: Nicola Spanti <translations@nicola-spanti.info>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/friendica/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: editplain.php:46
|
||||
msgid "Editplain settings updated."
|
||||
msgstr ""
|
||||
|
||||
#: editplain.php:76
|
||||
msgid "Editplain Settings"
|
||||
msgstr ""
|
||||
|
||||
#: editplain.php:78
|
||||
msgid "Disable richtext status editor"
|
||||
msgstr "Désactiver l'éditeur avancé de statut"
|
||||
|
||||
#: editplain.php:84
|
||||
msgid "Submit"
|
||||
msgstr "Soumettre"
|
11
editplain/lang/fr/strings.php
Normal file
11
editplain/lang/fr/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
return ($n > 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Editplain settings updated."] = "";
|
||||
$a->strings["Editplain Settings"] = "";
|
||||
$a->strings["Disable richtext status editor"] = "Désactiver l'éditeur avancé de statut";
|
||||
$a->strings["Submit"] = "Soumettre";
|
6
editplain/lang/is/strings.php
Normal file
6
editplain/lang/is/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
$a->strings["Editplain settings updated."] = "";
|
||||
$a->strings["Editplain Settings"] = "";
|
||||
$a->strings["Disable richtext status editor"] = "";
|
||||
$a->strings["Submit"] = "Senda inn";
|
36
editplain/lang/it/messages.po
Normal file
36
editplain/lang/it/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
|||
# ADDON editplain
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# fabrixxm <fabrix.xm@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||
"PO-Revision-Date: 2014-10-22 07:54+0000\n"
|
||||
"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: editplain.php:46
|
||||
msgid "Editplain settings updated."
|
||||
msgstr "Impostazioni 'Editplain' aggiornate."
|
||||
|
||||
#: editplain.php:76
|
||||
msgid "Editplain Settings"
|
||||
msgstr "Impostazioni Editplain"
|
||||
|
||||
#: editplain.php:78
|
||||
msgid "Disable richtext status editor"
|
||||
msgstr "Disabilita l'editor di testo visuale"
|
||||
|
||||
#: editplain.php:84
|
||||
msgid "Submit"
|
||||
msgstr "Invia"
|
11
editplain/lang/it/strings.php
Normal file
11
editplain/lang/it/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_it")) {
|
||||
function string_plural_select_it($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Editplain settings updated."] = "Impostazioni 'Editplain' aggiornate.";
|
||||
$a->strings["Editplain Settings"] = "Impostazioni Editplain";
|
||||
$a->strings["Disable richtext status editor"] = "Disabilita l'editor di testo visuale";
|
||||
$a->strings["Submit"] = "Invia";
|
6
editplain/lang/nb-no/strings.php
Normal file
6
editplain/lang/nb-no/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
$a->strings["Editplain settings updated."] = "";
|
||||
$a->strings["Editplain Settings"] = "";
|
||||
$a->strings["Disable richtext status editor"] = "";
|
||||
$a->strings["Submit"] = "Lagre";
|
6
editplain/lang/pl/strings.php
Normal file
6
editplain/lang/pl/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
$a->strings["Editplain settings updated."] = "";
|
||||
$a->strings["Editplain Settings"] = "";
|
||||
$a->strings["Disable richtext status editor"] = "";
|
||||
$a->strings["Submit"] = "Potwierdź";
|
6
editplain/lang/pt-br/strings.php
Normal file
6
editplain/lang/pt-br/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
$a->strings["Editplain settings updated."] = "Configurações Editplain atualizadas.";
|
||||
$a->strings["Editplain Settings"] = "Configurações Editplain";
|
||||
$a->strings["Disable richtext status editor"] = "Disabilite o modo de edição richtext";
|
||||
$a->strings["Submit"] = "Enviar";
|
36
editplain/lang/ro/messages.po
Normal file
36
editplain/lang/ro/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
|||
# ADDON editplain
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Doru DEACONU <dumitrudeaconu@yahoo.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||
"PO-Revision-Date: 2014-11-27 14:13+0000\n"
|
||||
"Last-Translator: Doru DEACONU <dumitrudeaconu@yahoo.com>\n"
|
||||
"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ro_RO\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
|
||||
|
||||
#: editplain.php:46
|
||||
msgid "Editplain settings updated."
|
||||
msgstr "Configurările Editplain au fost actualizate."
|
||||
|
||||
#: editplain.php:76
|
||||
msgid "Editplain Settings"
|
||||
msgstr "Configurări Editplain"
|
||||
|
||||
#: editplain.php:78
|
||||
msgid "Disable richtext status editor"
|
||||
msgstr "Dezactivare editorul status de text îmbogățit"
|
||||
|
||||
#: editplain.php:84
|
||||
msgid "Submit"
|
||||
msgstr "Trimite"
|
11
editplain/lang/ro/strings.php
Normal file
11
editplain/lang/ro/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_ro")) {
|
||||
function string_plural_select_ro($n){
|
||||
return ($n==1?0:((($n%100>19)||(($n%100==0)&&($n!=0)))?2:1));;
|
||||
}}
|
||||
;
|
||||
$a->strings["Editplain settings updated."] = "Configurările Editplain au fost actualizate.";
|
||||
$a->strings["Editplain Settings"] = "Configurări Editplain";
|
||||
$a->strings["Disable richtext status editor"] = "Dezactivare editorul status de text îmbogățit";
|
||||
$a->strings["Submit"] = "Trimite";
|
36
editplain/lang/ru/messages.po
Normal file
36
editplain/lang/ru/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
|||
# ADDON editplain
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Stanislav N. <pztrn@pztrn.name>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||
"PO-Revision-Date: 2017-04-08 17:10+0000\n"
|
||||
"Last-Translator: Stanislav N. <pztrn@pztrn.name>\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: editplain.php:46
|
||||
msgid "Editplain settings updated."
|
||||
msgstr "Настройки Editplain обновлены"
|
||||
|
||||
#: editplain.php:76
|
||||
msgid "Editplain Settings"
|
||||
msgstr "Настройки Editplain"
|
||||
|
||||
#: editplain.php:78
|
||||
msgid "Disable richtext status editor"
|
||||
msgstr "Отключить richtext status editor"
|
||||
|
||||
#: editplain.php:84
|
||||
msgid "Submit"
|
||||
msgstr "Добавить"
|
11
editplain/lang/ru/strings.php
Normal file
11
editplain/lang/ru/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_ru")) {
|
||||
function string_plural_select_ru($n){
|
||||
return ($n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<12 || $n%100>14) ? 1 : $n%10==0 || ($n%10>=5 && $n%10<=9) || ($n%100>=11 && $n%100<=14)? 2 : 3);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Editplain settings updated."] = "Настройки Editplain обновлены";
|
||||
$a->strings["Editplain Settings"] = "Настройки Editplain";
|
||||
$a->strings["Disable richtext status editor"] = "Отключить richtext status editor";
|
||||
$a->strings["Submit"] = "Добавить";
|
3
editplain/lang/sv/strings.php
Normal file
3
editplain/lang/sv/strings.php
Normal file
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
|
||||
$a->strings["Submit"] = "Spara";
|
6
editplain/lang/zh-cn/strings.php
Normal file
6
editplain/lang/zh-cn/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
|
||||
$a->strings["Editplain settings updated."] = "Editplain设置更新了";
|
||||
$a->strings["Editplain Settings"] = "Editplain设置";
|
||||
$a->strings["Disable richtext status editor"] = "使richtext现状编辑 不能用";
|
||||
$a->strings["Submit"] = "提交";
|
29
extcron/extcron.php
Executable file
29
extcron/extcron.php
Executable file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
|
||||
/**
|
||||
* Name: external cron
|
||||
* Description: Use external server or service to run poller regularly
|
||||
* Version: 1.0
|
||||
* Author: Mike Macgirvin <https://macgirvin.com/profile/mike>
|
||||
*
|
||||
* Notes: External service needs to make a web request to http(s)://yoursite/extcron
|
||||
* Status: Unsupported
|
||||
*/
|
||||
|
||||
require_once "mod/worker.php";
|
||||
|
||||
function extcron_install() {}
|
||||
|
||||
function extcron_uninstall() {}
|
||||
|
||||
function extcron_module() {}
|
||||
|
||||
function extcron_init(&$a) {
|
||||
worker_init($a);
|
||||
killme();
|
||||
|
||||
// Deactivated
|
||||
//proc_run('php','include/poller.php');
|
||||
//killme();
|
||||
}
|
0
extcron/lang/C/messages.po
Normal file
0
extcron/lang/C/messages.po
Normal file
19
facebook/README.md
Executable file
19
facebook/README.md
Executable file
|
@ -0,0 +1,19 @@
|
|||
> # Note
|
||||
> **Facebook Connector, Facebook Post Connector and Facebook Sync plugins are deprecated.**
|
||||
> As of the moment you cannot bridge from or to Facebook with Friendica.
|
||||
|
||||
Installing the Friendica/Facebook connector
|
||||
|
||||
Detailed instructions how to use this plugin can be found at
|
||||
the [How to: Friendica's Facebook Connector](https://github.com/friendica/friendica/wiki/How-to:-Friendica%E2%80%99s-Facebook-connector) page.
|
||||
|
||||
Vidoes and embeds will not be posted if there is no other content. Links
|
||||
and images will be converted to a format suitable for the Facebook API and
|
||||
long posts truncated - with a link to view the full post.
|
||||
|
||||
Facebook contacts will not be able to view private photos, as they are not able to
|
||||
authenticate to your site to establish identity. We will address this
|
||||
in a future release.
|
||||
|
||||
Info: please make sure that you understand all aspects due to Friendica's
|
||||
default licence which is: [MIT License](https://github.com/friendica/friendica/blob/master/LICENSE)
|
13
facebook/facebook.css
Executable file
13
facebook/facebook.css
Executable file
|
@ -0,0 +1,13 @@
|
|||
|
||||
#facebook-enable-wrapper {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#facebook-disable-wrapper {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#facebook-post-default-form input {
|
||||
margin-top: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue