aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGravatar Roman D <me@iamroman.org> 2022-08-20 13:06:24 +0300
committerGravatar GitHub <noreply@github.com> 2022-08-20 12:06:24 +0200
commit0ec65788f9a2fb3ab389d22c723e6b36d798a806 (patch)
treed3832b2c07ff74d9c709cbab34feebce3ad66298 /app
parent8f475523f52101f818dd4cb9ab22b5429ab39287 (diff)
Implemented advanced feed settings to allow cookies and HTTP redirects. (#4470)
* Implemented advanced feed settings to allow cookies and HTTP redirects. * i18n fr Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Diffstat (limited to 'app')
-rwxr-xr-xapp/Controllers/feedController.php15
-rw-r--r--app/Controllers/subscriptionController.php11
-rw-r--r--app/i18n/cz/sub.php4
-rw-r--r--app/i18n/de/sub.php4
-rw-r--r--app/i18n/en-us/sub.php4
-rw-r--r--app/i18n/en/sub.php4
-rwxr-xr-xapp/i18n/es/sub.php4
-rw-r--r--app/i18n/fr/sub.php4
-rw-r--r--app/i18n/he/sub.php4
-rw-r--r--app/i18n/it/sub.php4
-rw-r--r--app/i18n/ja/sub.php4
-rw-r--r--app/i18n/ko/sub.php4
-rw-r--r--app/i18n/nl/sub.php4
-rw-r--r--app/i18n/oc/sub.php4
-rw-r--r--app/i18n/pl/sub.php4
-rw-r--r--app/i18n/pt-br/sub.php4
-rw-r--r--app/i18n/ru/sub.php4
-rw-r--r--app/i18n/sk/sub.php4
-rw-r--r--app/i18n/tr/sub.php4
-rw-r--r--app/i18n/zh-cn/sub.php4
-rw-r--r--app/views/helpers/feed/update.phtml19
-rw-r--r--app/views/subscription/add.phtml21
22 files changed, 138 insertions, 0 deletions
diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php
index 95bca33eb..00759bd18 100755
--- a/app/Controllers/feedController.php
+++ b/app/Controllers/feedController.php
@@ -165,6 +165,9 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
$http_auth = $user . ':' . $pass;
}
+ $cookie = Minz_Request::param('curl_params_cookie', '');
+ $cookie_file = Minz_Request::paramBoolean('curl_params_cookiefile');
+ $max_redirs = intval(Minz_Request::param('curl_params_redirects', 0));
$useragent = Minz_Request::param('curl_params_useragent', '');
$proxy_address = Minz_Request::param('curl_params', '');
$proxy_type = Minz_Request::param('proxy_type', '');
@@ -173,6 +176,18 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
$opts[CURLOPT_PROXY] = $proxy_address;
$opts[CURLOPT_PROXYTYPE] = intval($proxy_type);
}
+ if ($cookie !== '') {
+ $opts[CURLOPT_COOKIE] = $cookie;
+ }
+ if ($cookie_file) {
+ // Pass empty cookie file name to enable the libcurl cookie engine
+ // without reading any existing cookie data.
+ $opts[CURLOPT_COOKIEFILE] = '';
+ }
+ if ($max_redirs != 0) {
+ $opts[CURLOPT_MAXREDIRS] = $max_redirs;
+ $opts[CURLOPT_FOLLOWLOCATION] = 1;
+ }
if ($useragent !== '') {
$opts[CURLOPT_USERAGENT] = $useragent;
}
diff --git a/app/Controllers/subscriptionController.php b/app/Controllers/subscriptionController.php
index bbefc2d68..cca41b004 100644
--- a/app/Controllers/subscriptionController.php
+++ b/app/Controllers/subscriptionController.php
@@ -143,6 +143,8 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController {
$feed->_attributes('read_when_same_title_in_feed', $read_when_same_title_in_feed);
$cookie = Minz_Request::param('curl_params_cookie', '');
+ $cookie_file = Minz_Request::paramBoolean('curl_params_cookiefile');
+ $max_redirs = intval(Minz_Request::param('curl_params_redirects', 0));
$useragent = Minz_Request::param('curl_params_useragent', '');
$proxy_address = Minz_Request::param('curl_params', '');
$proxy_type = Minz_Request::param('proxy_type', '');
@@ -154,6 +156,15 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController {
if ($cookie !== '') {
$opts[CURLOPT_COOKIE] = $cookie;
}
+ if ($cookie_file) {
+ // Pass empty cookie file name to enable the libcurl cookie engine
+ // without reading any existing cookie data.
+ $opts[CURLOPT_COOKIEFILE] = '';
+ }
+ if ($max_redirs != 0) {
+ $opts[CURLOPT_MAXREDIRS] = $max_redirs;
+ $opts[CURLOPT_FOLLOWLOCATION] = 1;
+ }
if ($useragent !== '') {
$opts[CURLOPT_USERAGENT] = $useragent;
}
diff --git a/app/i18n/cz/sub.php b/app/i18n/cz/sub.php
index 6cacf3e8b..a51692a3f 100644
--- a/app/i18n/cz/sub.php
+++ b/app/i18n/cz/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Název',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Přidat kanál RSS',
'advanced' => 'Rozšířené',
'archiving' => 'Archivace',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Znovu načíst články a získat úplný obsah, pokud je definován přepínač.', // DIRTY
'title' => 'Údržba',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Když odstraníte kategorii, její kanály jsou automaticky přesunuty do <em>%s</em>.',
'mute' => 'ztlumit',
'no_selected' => 'Nejsou vybrány žádné kanály.',
diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php
index c8a0c7961..e78d1ef25 100644
--- a/app/i18n/de/sub.php
+++ b/app/i18n/de/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Titel',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Einen RSS-Feed hinzufügen',
'advanced' => 'Erweitert',
'archiving' => 'Archivierung',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Artikel neuladen und komplette Inhalte holen, wenn ein Selektor festgelegt wurde.', // DIRTY
'title' => 'Wartung',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Wenn Sie eine Kategorie entfernen, werden deren Feeds automatisch in die Kategorie <em>%s</em> eingefügt.',
'mute' => 'Stumm schalten',
'no_selected' => 'Kein Feed ausgewählt.',
diff --git a/app/i18n/en-us/sub.php b/app/i18n/en-us/sub.php
index 648fdec9a..df727041a 100644
--- a/app/i18n/en-us/sub.php
+++ b/app/i18n/en-us/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Title', // IGNORE
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // IGNORE
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // IGNORE
'add' => 'Add an RSS feed', // IGNORE
'advanced' => 'Advanced', // IGNORE
'archiving' => 'Archiving', // IGNORE
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Reload that many articles and fetch complete content if a selector is defined.', // IGNORE
'title' => 'Maintenance', // IGNORE
),
+ 'max_http_redir' => 'Max HTTP redirects', // IGNORE
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // IGNORE
'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under <em>%s</em>.', // IGNORE
'mute' => 'mute', // IGNORE
'no_selected' => 'No feed selected.', // IGNORE
diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php
index 202d89b3c..c5c15a435 100644
--- a/app/i18n/en/sub.php
+++ b/app/i18n/en/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Title',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies',
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)',
'add' => 'Add an RSS feed',
'advanced' => 'Advanced',
'archiving' => 'Archiving',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Reload that many articles and fetch complete content if a selector is defined.',
'title' => 'Maintenance',
),
+ 'max_http_redir' => 'Max HTTP redirects',
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects',
'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under <em>%s</em>.',
'mute' => 'mute',
'no_selected' => 'No feed selected.',
diff --git a/app/i18n/es/sub.php b/app/i18n/es/sub.php
index dcf72697f..7918a9437 100755
--- a/app/i18n/es/sub.php
+++ b/app/i18n/es/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Título',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Añadir fuente RSS',
'advanced' => 'Avanzado',
'archiving' => 'Archivo',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Vuelva a cargar artículos y obtenga contenido completo si se define un selector.', // DIRTY
'title' => 'Mantenimiento',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Al borrar una categoría todas sus fuentes pasan automáticamente a la categoría <em>%s</em>.',
'mute' => 'silenciar',
'no_selected' => 'No hay funentes seleccionadas.',
diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php
index 3faf379c2..f199fefbd 100644
--- a/app/i18n/fr/sub.php
+++ b/app/i18n/fr/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Titre',
),
'feed' => array(
+ 'accept_cookies' => 'Autoriser les cookies',
+ 'accept_cookies_help' => 'Accepte les cookies du flux (stocké en mémoire seulement le temps de la requête)',
'add' => 'Ajouter un flux RSS',
'advanced' => 'Avancé',
'archiving' => 'Archivage',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Recharge cette quantité d’articles et récupère le contenu complet si un sélecteur est défini.',
'title' => 'Maintenance', // IGNORE
),
+ 'max_http_redir' => 'Maximum de redirections HTTP',
+ 'max_http_redir_help' => 'Mettre à 0 ou vide pour désactiver, -1 pour un nombre illimité de redirections',
'moved_category_deleted' => 'Lors de la suppression d’une catégorie, ses flux seront automatiquement classés dans <em>%s</em>.',
'mute' => 'désactivé',
'no_selected' => 'Aucun flux sélectionné.',
diff --git a/app/i18n/he/sub.php b/app/i18n/he/sub.php
index 0d9f2ea96..033a0a7e5 100644
--- a/app/i18n/he/sub.php
+++ b/app/i18n/he/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'כותרת',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'הוספת הזנה',
'advanced' => 'מתקדם',
'archiving' => 'ארכוב',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Reload that many articles and fetch complete content if a selector is defined.', // TODO
'title' => 'Maintenance', // TODO
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'כאשר הקטגוריה נמחקת ההזנות שבתוכה אוטומטית מקוטלגות תחת <em>%s</em>.',
'mute' => 'mute', // TODO
'no_selected' => 'אף הזנה לא נבחרה.',
diff --git a/app/i18n/it/sub.php b/app/i18n/it/sub.php
index c9f4823f0..720733c7d 100644
--- a/app/i18n/it/sub.php
+++ b/app/i18n/it/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Titolo',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Aggiungi un Feed RSS',
'advanced' => 'Avanzate',
'archiving' => 'Archiviazione',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Reload that many articles and fetch complete content if a selector is defined.', // TODO
'title' => 'Maintenance', // TODO
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Cancellando una categoria i feed al suo interno verranno classificati automaticamente come <em>%s</em>.',
'mute' => 'mute', // TODO
'no_selected' => 'Nessun feed selezionato.',
diff --git a/app/i18n/ja/sub.php b/app/i18n/ja/sub.php
index 9973e5bec..54ae55267 100644
--- a/app/i18n/ja/sub.php
+++ b/app/i18n/ja/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'タイトル',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'RSSフィードに追加する',
'advanced' => '応用的な設定',
'archiving' => 'アーカイブ',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => '記事を再読み込みして、セレクターが定義したコンテンツを完全に取得します。', // DIRTY
'title' => 'メンテナンス',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'カテゴリを削除したとき、フィードは自動的に<em>%s</em>下に分類されます。',
'mute' => 'ミュート',
'no_selected' => 'どのフィードも選択されていません',
diff --git a/app/i18n/ko/sub.php b/app/i18n/ko/sub.php
index edb97842b..4e188f6d1 100644
--- a/app/i18n/ko/sub.php
+++ b/app/i18n/ko/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => '제목',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'RSS 피드 추가',
'advanced' => '고급 설정',
'archiving' => '보관',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => '글 다시 로드하고 셀렉터가 정의 되었을 경우에 모든 컨텐츠 가져오기.', // DIRTY
'title' => '유지 보수',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => '카테고리를 삭제하면, 해당 카테고리 아래에 있던 피드들은 자동적으로 <em>%s</em> 아래로 분류됩니다.',
'mute' => '무기한 새로고침 금지',
'no_selected' => '선택된 피드가 없습니다.',
diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php
index b8585bcbb..fbcbb8bfb 100644
--- a/app/i18n/nl/sub.php
+++ b/app/i18n/nl/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Titel',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Voeg een RSS-feed toe',
'advanced' => 'Geavanceerd',
'archiving' => 'Archiveren',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Artikels herladen en complete inhoud ophalen als een selector is gedefinieerd.', // DIRTY
'title' => 'Onderhoud',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Als u een categorie verwijderd, worden de feeds automatisch geclassificeerd onder <em>%s</em>.',
'mute' => 'demp',
'no_selected' => 'Geen feed geselecteerd.',
diff --git a/app/i18n/oc/sub.php b/app/i18n/oc/sub.php
index 28b0de33b..59b5d40ad 100644
--- a/app/i18n/oc/sub.php
+++ b/app/i18n/oc/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Títol',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Ajustar un flux RSS',
'advanced' => 'Avançat',
'archiving' => 'Archivar',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Recargar los articles e recuperar lo contengut complet', // DIRTY
'title' => 'Mantenença',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Quand escafatz una categoria, sos fluxes son automaticament classats dins <em>%s</em>.',
'mute' => 'mut',
'no_selected' => 'Cap de flux pas seleccionat.',
diff --git a/app/i18n/pl/sub.php b/app/i18n/pl/sub.php
index 603fe8f4a..6e819d92c 100644
--- a/app/i18n/pl/sub.php
+++ b/app/i18n/pl/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Tytuł',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Dodaj kanał',
'advanced' => 'Zaawansowane',
'archiving' => 'Archiwizacja',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Ponownie pobiera wiadomości i przetwarza treść ze strony pierwotnej, jeżeli zdefiniowany został selektor CSS.', // DIRTY
'title' => 'Konserwacja',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Po usunięciu kategorii znajdujące się w niej kanały zostaną automatycznie przeniesione do <em>%s</em>.',
'mute' => 'wycisz',
'no_selected' => 'Brak kanałów.',
diff --git a/app/i18n/pt-br/sub.php b/app/i18n/pt-br/sub.php
index 82ae085ef..6f49f6fc3 100644
--- a/app/i18n/pt-br/sub.php
+++ b/app/i18n/pt-br/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Título',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Adicionar um RSS feed',
'advanced' => 'Avançado',
'archiving' => 'Arquivar',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Recarregar artigos e buscar conteúdo completo', // DIRTY
'title' => 'Manutenção',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Quando você deleta uma categoria, seus feeds são automaticamente classificados como <em>%s</em>.',
'mute' => 'silenciar',
'no_selected' => 'Nenhum feed selecionado.',
diff --git a/app/i18n/ru/sub.php b/app/i18n/ru/sub.php
index 9bc64f05d..347162296 100644
--- a/app/i18n/ru/sub.php
+++ b/app/i18n/ru/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Заголовок',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Добавить RSS-ленту',
'advanced' => 'Дополнительно',
'archiving' => 'Архивирование',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Перезагрузить столько статей и извлечь полное содержимое, если задан селектор.',
'title' => 'Обслуживание',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Когда вы удаляете категорию, ленты категории автоматически попадают в категорию <em>%s</em>.',
'mute' => 'заглушить',
'no_selected' => 'Ленты не выбраны.',
diff --git a/app/i18n/sk/sub.php b/app/i18n/sk/sub.php
index 58999e5f3..4a4fd6f9f 100644
--- a/app/i18n/sk/sub.php
+++ b/app/i18n/sk/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Názov',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'Pridať RSS kanál',
'advanced' => 'Pokročilé',
'archiving' => 'Archivovanie',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Obnoviť články a stiahnuť kompletný obsah, ak je definovaný selektor.', // DIRTY
'title' => 'Údržba',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Keď vymažete kategóriu, jej kanály sa automaticky zaradia pod <em>%s</em>.',
'mute' => 'stíšiť',
'no_selected' => 'Nevybrali ste kanál.',
diff --git a/app/i18n/tr/sub.php b/app/i18n/tr/sub.php
index e0af10d12..3fb1ff520 100644
--- a/app/i18n/tr/sub.php
+++ b/app/i18n/tr/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => 'Başlık',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => 'RSS akışı ekle',
'advanced' => 'Gelişmiş',
'archiving' => 'Arşiv',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => 'Reload that many articles and fetch complete content if a selector is defined.', // TODO
'title' => 'Bakım',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => 'Bir kategoriyi silerseniz, içerisindeki akışlar <em>%s</em> içerisine yerleşir.',
'mute' => 'sessize al',
'no_selected' => 'Hiçbir akış seçilmedi.',
diff --git a/app/i18n/zh-cn/sub.php b/app/i18n/zh-cn/sub.php
index 1ecb5e557..580a25e88 100644
--- a/app/i18n/zh-cn/sub.php
+++ b/app/i18n/zh-cn/sub.php
@@ -36,6 +36,8 @@ return array(
'title' => '标题',
),
'feed' => array(
+ 'accept_cookies' => 'Accept cookies', // TODO
+ 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO
'add' => '添加订阅源',
'advanced' => '高级',
'archiving' => '归档',
@@ -124,6 +126,8 @@ return array(
'reload_articles_help' => '重载 n 篇文章并抓取内容(若设置了 CSS 选择器)',
'title' => '维护',
),
+ 'max_http_redir' => 'Max HTTP redirects', // TODO
+ 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO
'moved_category_deleted' => '删除分类时,其中的订阅源会自动归类到 <em>%s</em>',
'mute' => '暂停',
'no_selected' => '未选择订阅源',
diff --git a/app/views/helpers/feed/update.phtml b/app/views/helpers/feed/update.phtml
index 02dcb29e6..3ebf2d0f3 100644
--- a/app/views/helpers/feed/update.phtml
+++ b/app/views/helpers/feed/update.phtml
@@ -527,6 +527,25 @@
$this->feed->attributes('curl_params')[CURLOPT_COOKIE] : ''
?>" placeholder="<?= _t('gen.short.blank_to_disable') ?>" />
<p class="help"><?= _i('help') ?> <?= _t('sub.feed.css_cookie_help') ?></p>
+ <label for="curl_params_cookiefile">
+ <input type="checkbox" name="curl_params_cookiefile" id="curl_params_cookiefile" value="1"<?=
+ is_array($this->feed->attributes('curl_params')) && isset($this->feed->attributes('curl_params')[CURLOPT_COOKIEFILE]) ?
+ ' checked="checked"' : ''
+ ?> />
+ <?= _t('sub.feed.accept_cookies') ?>
+ </label>
+ <p class="help"><?= _i('help') ?> <?= _t('sub.feed.accept_cookies_help') ?></p>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="group-name" for="curl_params_redirects"><?= _t('sub.feed.max_http_redir') ?></label>
+ <div class="group-controls">
+ <input type="number" name="curl_params_redirects" id="curl_params_redirects" class="w50" min="-1" value="<?=
+ is_array($this->feed->attributes('curl_params')) && !empty($this->feed->attributes('curl_params')[CURLOPT_MAXREDIRS]) ?
+ $this->feed->attributes('curl_params')[CURLOPT_MAXREDIRS] : ''
+ ?>" placeholder="<?= _t('gen.short.blank_to_disable') ?>" />
+ <p class="help"><?= _i('help') ?> <?= _t('sub.feed.max_http_redir_help') ?></p>
</div>
</div>
diff --git a/app/views/subscription/add.phtml b/app/views/subscription/add.phtml
index 41ee04fb7..a2b7f1289 100644
--- a/app/views/subscription/add.phtml
+++ b/app/views/subscription/add.phtml
@@ -180,6 +180,27 @@
</div>
<div class="form-group">
+ <label class="group-name" for="curl_params_cookie"><?= _t('sub.feed.css_cookie') ?></label>
+ <div class="group-controls">
+ <input type="text" name="curl_params_cookie" id="curl_params_cookie" class="extend" value="" placeholder="<?= _t('gen.short.blank_to_disable') ?>" />
+ <p class="help"><?= _i('help') ?> <?= _t('sub.feed.css_cookie_help') ?></p>
+ <label for="curl_params_cookiefile">
+ <input type="checkbox" name="curl_params_cookiefile" id="curl_params_cookiefile" value="1" />
+ <?= _t('sub.feed.accept_cookies') ?>
+ </label>
+ <p class="help"><?= _i('help') ?> <?= _t('sub.feed.accept_cookies_help') ?></p>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="group-name" for="curl_params_redirects"><?= _t('sub.feed.max_http_redir') ?></label>
+ <div class="group-controls">
+ <input type="number" name="curl_params_redirects" id="curl_params_redirects" class="extend" min="-1" value="" placeholder="<?= _t('gen.short.blank_to_disable') ?>" />
+ <p class="help"><?= _i('help') ?> <?= _t('sub.feed.max_http_redir_help') ?></p>
+ </div>
+ </div>
+
+ <div class="form-group">
<label class="group-name" for="curl_params_useragent"><?= _t('sub.feed.useragent') ?></label>
<div class="group-controls">
<div class="stick">