diff --git a/doc/de/Making-Friends.md b/doc/de/Making-Friends.md
index e6725228f..74f1f62b3 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 06a1878ba..b6e492ae6 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
diff --git a/include/api.php b/include/api.php
index 374a71847..ffa5d0e9d 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
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index 2aa654534..43414dc87 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 ),