diff options
| author | 2024-01-10 08:23:45 +0100 | |
|---|---|---|
| committer | 2024-01-10 08:23:45 +0100 | |
| commit | 9c97d8ca729e3cfb067445c0d3c9ad8284132aeb (patch) | |
| tree | 256588d7a65cc8658c808bc7852c816f6ccc1cd2 /app/views/subscription/add.phtml | |
| parent | 9a80dde238caf1338b803f67003cd459393efdc3 (diff) | |
JSONFeeds, JSON scraping, and POST requests for feeds (#5662)
* allow POST requests for feeds
* added json dotpath and jsonfeed subscriptions. No translation strings yet
* debug and fix jsonfeed parser
* bugfix params saved when editing feed
* added translations for JSON features
* Update docs for web scraping
* make fix-all
and revert unrelated changes, plus a few manual fixes, but there are still several type errors
* Fix some i18n
* refactor json parsing for both feed types
* cleanup unnecessary comment
* refactored generation of SimplePie for XPath and JSON feeds
* Fix merge error
* Update to newer FreshRSS code
* A bit of refactoring
* doc, whitespace
* JSON Feed is in two words
* Add support for array syntax
* Whitespace
* Add OPML export/import
* Work on i18n
* Accept application/feed+json
* Rework POST
* Fix update
* OPML for cURL options
* Fix types
* Fix Typos
---------
Co-authored-by: Erion Elmasllari <elmasllari@factorsixty.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Diffstat (limited to 'app/views/subscription/add.phtml')
| -rw-r--r-- | app/views/subscription/add.phtml | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/app/views/subscription/add.phtml b/app/views/subscription/add.phtml index 2dfc8c705..fad1ee0ff 100644 --- a/app/views/subscription/add.phtml +++ b/app/views/subscription/add.phtml @@ -71,6 +71,8 @@ <option value="<?= FreshRSS_Feed::KIND_RSS ?>" selected="selected"><?= _t('sub.feed.kind.rss') ?></option> <option value="<?= FreshRSS_Feed::KIND_HTML_XPATH ?>" data-show="html_xpath"><?= _t('sub.feed.kind.html_xpath') ?></option> <option value="<?= FreshRSS_Feed::KIND_XML_XPATH ?>" data-show="html_xpath"><?= _t('sub.feed.kind.xml_xpath') ?></option> + <option value="<?= FreshRSS_Feed::KIND_JSONFEED ?>"><?= _t('sub.feed.kind.jsonfeed') ?></option> + <option value="<?= FreshRSS_Feed::KIND_JSON_DOTPATH ?>" data-show="json_dotpath"><?= _t('sub.feed.kind.json_dotpath') ?></option> </select> </div> </div> @@ -164,6 +166,93 @@ </div> </div> </fieldset> + <fieldset id="json_dotpath"> + <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotpath.help') ?></p> + <div class="form-group"> + <label class="group-name" for="jsonFeedTitle"><small><?= _t('sub.feed.kind.json_dotpath.json') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.feed_title') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonFeedTitle" id="jsonFeedTitle" rows="2" cols="64" spellcheck="false">title</textarea> + <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotpath.feed_title.help') ?></p> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItem"><small><?= _t('sub.feed.kind.json_dotpath.json') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.item') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonItem" id="jsonItem" rows="2" cols="64" spellcheck="false"></textarea> + <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotpath.item.help') ?></p> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItemTitle"><small><?= _t('sub.feed.kind.json_dotpath.relative') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.item_title') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonItemTitle" id="jsonItemTitle" rows="2" cols="64" spellcheck="false"></textarea> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItemContent"><small><?= _t('sub.feed.kind.json_dotpath.relative') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.item_content') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonItemContent" id="jsonItemContent" rows="2" cols="64" spellcheck="false"></textarea> + <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotpath.item_content.help') ?></p> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItemUri"><small><?= _t('sub.feed.kind.json_dotpath.relative') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.item_uri') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonItemUri" id="jsonItemUri" rows="2" cols="64" spellcheck="false"></textarea> + <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotpath.item_uri.help') ?></p> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItemThumbnail"><small><?= _t('sub.feed.kind.json_dotpath.relative') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.item_thumbnail') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonItemThumbnail" id="jsonItemThumbnail" rows="2" cols="64" spellcheck="false"></textarea> + <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotpath.item_thumbnail.help') ?></p> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItemAuthor"><small><?= _t('sub.feed.kind.json_dotpath.relative') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.item_author') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonItemAuthor" id="jsonItemAuthor" rows="2" cols="64" spellcheck="false"></textarea> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItemTimestamp"><small><?= _t('sub.feed.kind.json_dotpath.relative') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.item_timestamp') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonItemTimestamp" id="jsonItemTimestamp" rows="2" cols="64" spellcheck="false"></textarea> + <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotpath.item_timestamp.help') ?></p> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItemTimeFormat"> + <?= _t('sub.feed.kind.json_dotpath.item_timeFormat') ?></label> + <div class="group-controls"> + <textarea name="jsonItemTimeFormat" id="jsonItemTimeFormat" rows="2" cols="64" spellcheck="false"></textarea> + <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotpath.item_timeFormat.help') ?></p> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItemCategories"><small><?= _t('sub.feed.kind.json_dotpath.relative') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.item_categories') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonItemCategories" id="jsonItemCategories" rows="2" cols="64" spellcheck="false"></textarea> + </div> + </div> + <div class="form-group"> + <label class="group-name" for="jsonItemUid"><small><?= _t('sub.feed.kind.json_dotpath.relative') ?></small><br /> + <?= _t('sub.feed.kind.json_dotpath.item_uid') ?></label> + <div class="group-controls"> + <textarea class="valid-json" name="jsonItemUid" id="jsonItemUid" rows="2" cols="64" spellcheck="false"></textarea> + </div> + </div> + </fieldset> </details> <details class="form-advanced"> @@ -232,6 +321,22 @@ </div> <div class="form-group"> + <label class="group-name" for="curl_method"><?= _t('sub.feed.method') ?></label> + <div class="group-controls"> + <select class="number" name="curl_method" id="curl_method"><?php + foreach (['GET' => 'GET', 'POST' => 'POST'] as $k => $v) { + echo '<option value="' . $k . '">' . $v . '</option>'; + } + ?> + </select> + <div class="stick"> + <input type="text" name="curl_fields" id="curl_fields" value="" placeholder="<?= _t('sub.feed.method_postparams') ?>" /> + </div> + <p class="help"><?= _i('help') ?> <?= _t('sub.feed.method_help') ?></p> + </div> + </div> + + <div class="form-group"> <label class="group-name" for="timeout"><?= _t('sub.feed.timeout') ?></label> <div class="group-controls"> <input type="number" name="timeout" id="timeout" min="3" max="900" value="" placeholder="<?= _t('gen.short.by_default') ?>" /> |
