From efab6031d5d47e406602b873dcbd18a6206c9c56 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Thu, 13 Nov 2014 08:28:49 +0100 Subject: [PATCH 1/3] applying the removal of that host from the German /help as well --- doc/de/Making-Friends.md | 4 +--- doc/de/andfinally.md | 4 ---- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/doc/de/Making-Friends.md b/doc/de/Making-Friends.md index e6725228ff..74f1f62b37 100644 --- a/doc/de/Making-Friends.md +++ b/doc/de/Making-Friends.md @@ -5,9 +5,7 @@ Freunde finden Freundschaft kann in Friendica viele verschiedene Bedeutungen annehmen. Aber lasst es uns einfach halten, du willst einfach mit jemandem befreundet sein. Wie machst du das? -Der einfachste Weg, um das zu machen, ist es, der Gruppe Neu hier beizutreten. Diese Gruppe ist speziell für Leute, die neu im Friendica-Netzwerk sind. Verbinde dich einfach mit der Gruppe, schreibe auf die "Wall" und lerne neue Leute kennen. Du musst uns nicht einmal direkt "liken" - kommentiere einige Beiträge und andere Leute werden anfangen, dich hinzuzufügen. - -Als Nächstes kannst du dir das Verzeichnis anschauen. Das Verzeichnis ist in zwei Teile aufgeteilt. Wenn du auf den "Verzeichnis"-Button klickst, wirst du zunächst alle Mitglieder deines Servers sehen, die sich dazu entschlossen haben, angezeigt zu werden. Außerdem siehst du dort einen Link zum globalen Verzeichnis. Wenn du dich durch das globale Verzeichnis klickst, siehst du alle Nutzer weltweit auf allen Servern, die sich entschlossen haben, im Verzeichnis zu erscheinen. Du wirst außerdem den Link "Show Community Forums" sehen, welcher dich zu Gruppen, Foren und Fan-Seiten führt. Du verbindest dich mit Personen, Gruppen und Foren auf die gleiche Art, wobei Gruppen und Foren deine Anfrage automatisch annehmen, wohingegen ein Mensch dich erst manuell bestätigen muss. +Schau dir das Verzeichnis an. Das Verzeichnis ist in zwei Teile aufgeteilt. Wenn du auf den "Verzeichnis"-Button klickst, wirst du zunächst alle Mitglieder deines Servers sehen, die sich dazu entschlossen haben, angezeigt zu werden. Außerdem siehst du dort einen Link zum globalen Verzeichnis. Wenn du dich durch das globale Verzeichnis klickst, siehst du alle Nutzer weltweit auf allen Servern, die sich entschlossen haben, im Verzeichnis zu erscheinen. Du wirst außerdem den Link "Show Community Forums" sehen, welcher dich zu Gruppen, Foren und Fan-Seiten führt. Du verbindest dich mit Personen, Gruppen und Foren auf die gleiche Art, wobei Gruppen und Foren deine Anfrage automatisch annehmen, wohingegen ein Mensch dich erst manuell bestätigen muss. *Mit anderen Friendica-Nutzern verbinden* diff --git a/doc/de/andfinally.md b/doc/de/andfinally.md index 06a1878ba9..b6e492ae69 100644 --- a/doc/de/andfinally.md +++ b/doc/de/andfinally.md @@ -8,12 +8,8 @@ Hier sind noch einige weitere Dinge, die dir den Start vereinfachen können. **Gruppen** -- Neu hier? - eine Gruppe für Leute, die neu bei Friendica sind - - Friendica Support - Probleme? Dann ist das der Platz, um zu fragen! -- Öffentlicher Stream - ein Platz, um über alles mit jedem zu reden. - - Let's Talk eine Gruppe, um Leute und Gruppen mit gleichen Interessen zu finden - Local Friendica eine Seite für lokale Friendica-Gruppen From 9a414cc4a0e02db0c31b6b6fbe92137c12d4959c Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sat, 15 Nov 2014 19:21:54 +0100 Subject: [PATCH 2/3] Bugfix: There was a SQL error when trying to deliver friendica posts because of a parameter mismatch --- mod/dfrn_notify.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index 2aa6545346..43414dc87c 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -193,7 +193,7 @@ function dfrn_notify_content(&$a) { $r = q("DELETE FROM `challenge` WHERE `expire` < " . intval(time())); $r = q("INSERT INTO `challenge` ( `challenge`, `dfrn-id`, `expire` , `type`, `last_update` ) - VALUES( '%s', '%s', %d ) ", + VALUES( '%s', '%s', %d, '%s', '%s' ) ", dbesc($hash), dbesc($dfrn_id), intval(time() + 90 ), From f8f7cc9292e2f01637f0fec991229e8ffe16b83b Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Tue, 18 Nov 2014 23:55:45 +0100 Subject: [PATCH 3/3] API: Possibilty of throttling when posting limit is reached --- include/api.php | 61 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/include/api.php b/include/api.php index 374a718479..ffa5d0e9df 100644 --- a/include/api.php +++ b/include/api.php @@ -169,7 +169,7 @@ $json = json_encode($rr); if ($_GET['callback']) $json = $_GET['callback']."(".$json.")"; - return $json; + return $json; break; case "rss": header ("Content-Type: application/rss+xml"); @@ -681,6 +681,7 @@ logger('api_statuses_update: no user'); return false; } + $user_info = api_get_user($a); // convert $_POST array items to the form we use for web posts. @@ -725,6 +726,64 @@ if($parent) $_REQUEST['type'] = 'net-comment'; else { + // Check for throttling (maximum posts per day, week and month) + $throttle_day = get_config('system','throttle_limit_day'); + if ($throttle_day > 0) { + $datefrom = date("Y-m-d H:i:s", time() - 24*60*60); + + $r = q("SELECT COUNT(*) AS `posts_day` FROM `item` WHERE `uid`=%d AND `wall` + AND `created` > '%s' AND `id` = `parent`", + intval(api_user()), dbesc($datefrom)); + + if ($r) + $posts_day = $r[0]["posts_day"]; + else + $posts_day = 0; + + if ($posts_day > $throttle_day) { + logger('Daily posting limit reached for user '.api_user(), LOGGER_DEBUG); + die(api_error($a, $type, sprintf(t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day))); + } + } + + $throttle_week = get_config('system','throttle_limit_week'); + if ($throttle_week > 0) { + $datefrom = date("Y-m-d H:i:s", time() - 24*60*60*7); + + $r = q("SELECT COUNT(*) AS `posts_week` FROM `item` WHERE `uid`=%d AND `wall` + AND `created` > '%s' AND `id` = `parent`", + intval(api_user()), dbesc($datefrom)); + + if ($r) + $posts_week = $r[0]["posts_week"]; + else + $posts_week = 0; + + if ($posts_week > $throttle_week) { + logger('Weekly posting limit reached for user '.api_user(), LOGGER_DEBUG); + die(api_error($a, $type, sprintf(t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week))); + } + } + + $throttle_month = get_config('system','throttle_limit_month'); + if ($throttle_month > 0) { + $datefrom = date("Y-m-d H:i:s", time() - 24*60*60*30); + + $r = q("SELECT COUNT(*) AS `posts_month` FROM `item` WHERE `uid`=%d AND `wall` + AND `created` > '%s' AND `id` = `parent`", + intval(api_user()), dbesc($datefrom)); + + if ($r) + $posts_month = $r[0]["posts_month"]; + else + $posts_month = 0; + + if ($posts_month > $throttle_month) { + logger('Monthly posting limit reached for user '.api_user(), LOGGER_DEBUG); + die(api_error($a, $type, sprintf(t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month))); + } + } + $_REQUEST['type'] = 'wall'; if(x($_FILES,'media')) { // upload the image if we have one