mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-04-04 22:53:27 -04:00
CURLOPT parameters per feed (#3367)
* Working curlopt_params * Examples * curl_params for fetching the article * cleanup * clarification * Remove debugging * Options corrected * Removed Debugging * i18n not needed (right now) * Translations and UI rework * Checks in update.phtml * Unset Proxy&Cookies * remove clutter * minor fuckup * i18n added properly * resolve Errors * linting errors * linting errors, again * Review * Minor revert * Minor i18n: de Co-authored-by: maru <maru@nyx.im> Co-authored-by: Aeris <a3x@eris.cc> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
This commit is contained in:
@@ -112,6 +112,19 @@ class FreshRSS_subscription_Controller extends Minz_ActionController {
|
||||
$feed->_attributes('read_upon_reception', Minz_Request::paramTernary('read_upon_reception'));
|
||||
$feed->_attributes('clear_cache', Minz_Request::paramTernary('clear_cache'));
|
||||
|
||||
$cookie = Minz_Request::param('curl_params_cookie', '');
|
||||
$proxy_address = Minz_Request::param('curl_params', '');
|
||||
$proxy_type = Minz_Request::param('proxy_type', '');
|
||||
$opts = [];
|
||||
if ($proxy_address != '' && $proxy_type != '' && in_array($proxy_type, [0, 2, 4, 5, 6, 7])) {
|
||||
$opts[CURLOPT_PROXY] = $proxy_address;
|
||||
$opts[CURLOPT_PROXYTYPE] = intval($proxy_type);
|
||||
}
|
||||
if ($cookie != '') {
|
||||
$opts[CURLOPT_COOKIE] = $cookie;
|
||||
}
|
||||
$feed->_attributes('curl_params', empty($opts) ? null : $opts);
|
||||
|
||||
if (FreshRSS_Auth::hasAccess('admin')) {
|
||||
$feed->_attributes('ssl_verify', Minz_Request::paramTernary('ssl_verify'));
|
||||
$timeout = intval(Minz_Request::param('timeout', 0));
|
||||
|
||||
@@ -376,7 +376,13 @@ class FreshRSS_Entry extends Minz_Model {
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_ENCODING => '', //Enable all encodings
|
||||
]);
|
||||
|
||||
curl_setopt_array($ch, FreshRSS_Context::$system_conf->curl_options);
|
||||
|
||||
if (isset($attributes['curl_params']) && is_array($attributes['curl_params'])) {
|
||||
curl_setopt_array($ch, $attributes['curl_params']);
|
||||
}
|
||||
|
||||
if (isset($attributes['ssl_verify'])) {
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $attributes['ssl_verify'] ? 2 : 0);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $attributes['ssl_verify'] ? true : false);
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'Přihlašovací jméno',
|
||||
),
|
||||
'clear_cache' => 'Always clear cache', // TODO - Translation
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Stáhne zkrácenou verzi RSS kanálů (pozor, náročnější na čas!)',
|
||||
'css_path' => 'Původní CSS soubor článku z webových stránek',
|
||||
'description' => 'Popis',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Zobrazit ve “Všechny kanály”',
|
||||
'normal' => 'Show in its category', // TODO - Translation
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code', // TODO - Translation
|
||||
'show_rendered' => 'Show content', // TODO - Translation
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP-Nutzername',
|
||||
),
|
||||
'clear_cache' => 'Nicht cachen (für defekte Feeds)',
|
||||
'css_cookie' => 'Verwende Cookies beim Herunterladen des Feed-Inhalts mit CSS-Filtern',
|
||||
'css_cookie_help' => 'Beispiel: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
|
||||
'css_help' => 'Ruft bei gekürzten RSS-Feeds den vollständigen Artikelinhalt ab (Achtung, benötigt mehr Zeit!)',
|
||||
'css_path' => 'CSS-Selektor des Artikelinhaltes auf der Original-Webseite',
|
||||
'description' => 'Beschreibung',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'In Haupt-Feeds zeigen',
|
||||
'normal' => 'Zeige in eigener Kategorie',
|
||||
),
|
||||
'proxy' => 'Verwende einen Proxy, um den Feed abzuholen',
|
||||
'proxy_help' => 'Wähle ein Protokoll (z.B. SOCKS5) und einen Proxy mit Port (z.B. <kbd>127.0.0.1:1080</kbd>)',
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Quellcode anzeigen',
|
||||
'show_rendered' => 'Inhalt anzeigen',
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP username',
|
||||
),
|
||||
'clear_cache' => 'Always clear cache',
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Retrieves truncated RSS feeds (caution, requires more time!)',
|
||||
'css_path' => 'Article CSS selector on original website',
|
||||
'description' => 'Description',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Show in main stream',
|
||||
'normal' => 'Show in its category',
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code',
|
||||
'show_rendered' => 'Show content',
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP username',
|
||||
),
|
||||
'clear_cache' => 'Always clear cache',
|
||||
'css_cookie' => 'Use Cookies when fetching the article content',
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
|
||||
'css_help' => 'Retrieves truncated RSS feeds (caution, requires more time!)',
|
||||
'css_path' => 'Article CSS selector on original website',
|
||||
'description' => 'Description',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Show in main stream',
|
||||
'normal' => 'Show in its category',
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed',
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)',
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code',
|
||||
'show_rendered' => 'Show content',
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'Nombre de usuario HTTP',
|
||||
),
|
||||
'clear_cache' => 'Always clear cache', // TODO - Translation
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Recibir fuentes RSS truncadas (aviso, ¡necesita más tiempo!)',
|
||||
'css_path' => 'Ruta a la CSS de los artículos en la web original',
|
||||
'description' => 'Descripción',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Mostrar en salida principal',
|
||||
'normal' => 'Show in its category', // TODO - Translation
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code', // TODO - Translation
|
||||
'show_rendered' => 'Show content', // TODO - Translation
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'Identifiant HTTP',
|
||||
),
|
||||
'clear_cache' => 'Toujours vider le cache',
|
||||
'css_cookie' => 'Utiliser des cookies pour la réception du contenu des articles',
|
||||
'css_cookie_help' => 'Exemple : <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
|
||||
'css_help' => 'Permet de récupérer les flux tronqués (attention, demande plus de temps !)',
|
||||
'css_path' => 'Sélecteur CSS des articles sur le site d’origine',
|
||||
'description' => 'Description',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Afficher dans le flux principal',
|
||||
'normal' => 'Afficher dans sa catégorie',
|
||||
),
|
||||
'proxy' => 'Utiliser un proxy pour télécharger ce flux',
|
||||
'proxy_help' => 'Sélectionner un protocole (ex : SOCKS5) et entrer l’adresse du proxy (ex. : <kbd>127.0.0.1:1080</kbd>)',
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Afficher le code source',
|
||||
'show_rendered' => 'Afficher le contenu',
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP שם משתמש',
|
||||
),
|
||||
'clear_cache' => 'Always clear cache', // TODO - Translation
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'קבלת הזנות RSS קטומות (זהירות, לוקח זמן רב יותר!)',
|
||||
'css_path' => 'נתיב הCSS של המאמר באתר המקורי',
|
||||
'description' => 'תיאור',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'הצגה בזרם המרכזי',
|
||||
'normal' => 'Show in its category', // TODO - Translation
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code', // TODO - Translation
|
||||
'show_rendered' => 'Show content', // TODO - Translation
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP username', // TODO - Translation
|
||||
),
|
||||
'clear_cache' => 'Always clear cache', // TODO - Translation
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'In caso di RSS feeds troncati (attenzione, richiede molto tempo!)',
|
||||
'css_path' => 'Percorso del foglio di stile CSS del sito di origine',
|
||||
'description' => 'Descrizione',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Mostra in homepage',
|
||||
'normal' => 'Show in its category', // TODO - Translation
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code', // TODO - Translation
|
||||
'show_rendered' => 'Show content', // TODO - Translation
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP 사용자 이름',
|
||||
),
|
||||
'clear_cache' => '항상 캐시 지우기',
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => '글의 일부가 포함된 RSS 피드를 가져옵니다 (주의, 시간이 좀 더 걸립니다!)',
|
||||
'css_path' => '웹사이트 상의 글 본문에 해당하는 CSS 경로',
|
||||
'description' => '설명',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => '메인 스트림에 표시하기',
|
||||
'normal' => '피드가 속한 카테고리에만 표시하기',
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code', // TODO - Translation
|
||||
'show_rendered' => 'Show content', // TODO - Translation
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP gebruikers naam',
|
||||
),
|
||||
'clear_cache' => 'Cache altijd leegmaken',
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Haalt onvolledige RSS-feeds op (attentie, heeft meer tijd nodig!)',
|
||||
'css_path' => 'CSS-pad van artikelen op originele website',
|
||||
'description' => 'Omschrijving',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Zichtbaar in het overzicht',
|
||||
'normal' => 'Toon in categorie',
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Broncode tonen',
|
||||
'show_rendered' => 'Inhoud tonen',
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'Identificant HTTP',
|
||||
),
|
||||
'clear_cache' => 'Totjorn escafar lo cache',
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Permet de recuperar los fluxes troncats (atencion, demanda mai de temps !)',
|
||||
'css_path' => 'Selector CSS dels articles sul site d’origina',
|
||||
'description' => 'Descripcion',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Mostar al flux màger',
|
||||
'normal' => 'Mostar dins sa categoria',
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Veire lo còdi font',
|
||||
'show_rendered' => 'Veire lo contengut',
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'Użytkownik HTTP',
|
||||
),
|
||||
'clear_cache' => 'Zawsze czyść pamięć podręczną',
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Pozwala na ograniczenie zawartości kanałów (uwaga, wymaga więcej czasu!)',
|
||||
'css_path' => 'Selektor CSS dla wiadomości na pierwotnej stronie',
|
||||
'description' => 'Opis',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Pokaż w kanale głównym',
|
||||
'normal' => 'Pokaż w kategorii kanału',
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Pokaż źródło',
|
||||
'show_rendered' => 'Pokaż zawartość',
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'Usuário HTTP',
|
||||
),
|
||||
'clear_cache' => 'Sempre limpar o cache',
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Retorna RSS feeds truncados (atenção, requer mais tempo!)',
|
||||
'css_path' => 'Caminho do CSS do artigo no site original',
|
||||
'description' => 'Descrição',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Mostrar na tela principal',
|
||||
'normal' => 'Mostrar na sua categoria',
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Mostrar fonte',
|
||||
'show_rendered' => 'Mostrar conteúdo',
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP username', // TODO - Translation
|
||||
),
|
||||
'clear_cache' => 'Always clear cache', // TODO - Translation
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Retrieves truncated RSS feeds (caution, requires more time!)', // TODO - Translation
|
||||
'css_path' => 'Article CSS selector on original website', // TODO - Translation
|
||||
'description' => 'Description', // TODO - Translation
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Show in main stream', // TODO - Translation
|
||||
'normal' => 'Show in its category', // TODO - Translation
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code', // TODO - Translation
|
||||
'show_rendered' => 'Show content', // TODO - Translation
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'Používateľské meno pre HTTP',
|
||||
),
|
||||
'clear_cache' => 'Vždy vymazať vyrovnávaciu pamäť',
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Stiahnuť skrátenú verziu RSS kanála (pozor, vyžaduje viac času!)',
|
||||
'css_path' => 'Pôvodný CSS súbor článku z webovej stránky',
|
||||
'description' => 'Popis',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Zobraziť v prehľade kanálov',
|
||||
'normal' => 'Zobraziť vo svojej kategórii',
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code', // TODO - Translation
|
||||
'show_rendered' => 'Show content', // TODO - Translation
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP kullanıcı adı',
|
||||
),
|
||||
'clear_cache' => 'Always clear cache', // TODO - Translation
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => 'Dikkat, daha çok zaman gerekir!',
|
||||
'css_path' => 'Makaleleri kendi CSS görünümü ile göster',
|
||||
'description' => 'Tanım',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => 'Ana akışda göster',
|
||||
'normal' => 'Show in its category', // TODO - Translation
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Show source code', // TODO - Translation
|
||||
'show_rendered' => 'Show content', // TODO - Translation
|
||||
|
||||
@@ -33,6 +33,8 @@ return array(
|
||||
'username' => 'HTTP 用户名',
|
||||
),
|
||||
'clear_cache' => '总是清除缓存',
|
||||
'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation
|
||||
'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation
|
||||
'css_help' => '用于获取全文(注意,这将耗费更多时间!)',
|
||||
'css_path' => '原文的 CSS 选择器',
|
||||
'description' => '描述',
|
||||
@@ -61,6 +63,8 @@ return array(
|
||||
'main_stream' => '在首页中显示',
|
||||
'normal' => '在分类中显示',
|
||||
),
|
||||
'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation
|
||||
'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation
|
||||
'selector_preview' => array(
|
||||
'show_raw' => '显示源码',
|
||||
'show_rendered' => '显示内容',
|
||||
|
||||
@@ -286,6 +286,42 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="group-name" for="path_entries"><?= _t('sub.feed.css_cookie') ?></label>
|
||||
<div class="group-controls">
|
||||
<div class="stick">
|
||||
<input type="text" name="curl_params_cookie" id="curl_params_cookie" class="extend" value="<?=
|
||||
is_array($this->feed->attributes('curl_params')) && !empty($this->feed->attributes('curl_params')[CURLOPT_COOKIE]) ?
|
||||
$this->feed->attributes('curl_params')[CURLOPT_COOKIE] : ''
|
||||
?>" placeholder="<?= _t('gen.short.blank_to_disable') ?>" />
|
||||
</div>
|
||||
<p class="help"><?= _i('help') ?> <?= _t('sub.feed.css_cookie_help') ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="group-name" for="path_entries"><?= _t('sub.feed.proxy') ?></label>
|
||||
<div class="group-controls">
|
||||
<select class="number" name="proxy_type" id="proxy_type"><?php
|
||||
$type = '';
|
||||
if (is_array($this->feed->attributes('curl_params')) && isset($this->feed->attributes('curl_params')[CURLOPT_PROXYTYPE])) {
|
||||
$type = $this->feed->attributes('curl_params')[CURLOPT_PROXYTYPE];
|
||||
}
|
||||
foreach(['' => '', 3 => 'NONE', 0 => 'HTTP', 2 => 'HTTPS', 4 => 'SOCKS4', 6 => 'SOCKS4A', 5 => 'SOCKS5', 7 => 'SOCKS5H'] as $k => $v) {
|
||||
echo '<option value="' . $k . ($type === $k ? '" selected="selected' : '' ) . '">' . $v . '</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<div class="stick">
|
||||
<input type="text" name="curl_params" id="curl_params" class="extend" value="<?=
|
||||
is_array($this->feed->attributes('curl_params')) && !empty($this->feed->attributes('curl_params')[CURLOPT_PROXY]) ?
|
||||
$this->feed->attributes('curl_params')[CURLOPT_PROXY] : ''
|
||||
?>" placeholder="<?= _t('gen.short.blank_to_disable') ?>" />
|
||||
</div>
|
||||
<p class="help"><?= _i('help') ?> <?= _t('sub.feed.proxy_help') ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="group-name" for="mark_updated_article_unread"><?= _t('conf.reading.mark_updated_article_unread') ?></label>
|
||||
<div class="group-controls">
|
||||
|
||||
@@ -187,6 +187,11 @@ function customSimplePie($attributes = array()) {
|
||||
$curl_options[CURLOPT_SSL_CIPHER_LIST] = 'DEFAULT@SECLEVEL=1';
|
||||
}
|
||||
}
|
||||
if (!empty($attributes['curl_params']) && is_array($attributes['curl_params'])) {
|
||||
foreach ($attributes['curl_params'] as $co => $v) {
|
||||
curl_setopt($ch, $co, $v);
|
||||
}
|
||||
}
|
||||
$simplePie->set_curl_options($curl_options);
|
||||
|
||||
$simplePie->strip_comments(true);
|
||||
|
||||
Reference in New Issue
Block a user