Commit 45658421 authored by yPhil's avatar yPhil
Browse files

v1.2.8

parent c46149d8
Pipeline #408178 passed with stage
in 41 seconds
......@@ -3,20 +3,22 @@
## 1.2.8
- New option / dialog to merge the imported / open feeds with existing ones #e38691d5
- Better Item layout (Media/comment icons) and wrapping #c8158af2
- Better dialog defaults (WIP #9e3c8c2d)
- Server ports now set [in the config file](https://framagit.org/yphil/petrolette/-/blob/master/package.json)
- Autoselect in the text inputs
- Server ports now set [in the config file](https://framagit.org/yphil/petrolette/-/blob/master/package.json) #c46149d8
### Bugfixes
- Better Item layout (Media/comment icons) and wrapping #c8158af2
- Better dialog defaults (WIP #9e3c8c2d)
- Autoselect in the text inputs #c46149d8
- In "photo" mode, vertical images wrapped around the text, fixed #2027005b
- Feed name || URL in tooltip #b02b049c
- UTC Timestamps #a5ccb4ae
- Console size adjusted
- Better "on error" favicon image handling
- Console size adjusted #c46149d8
- Fixed a long, outstanding & known bug where the "new tab" button was not appended after an import, because of the weird gymnastics we have to do to make sure said button is always the last one, think about that when reviewing the (quite convoluted) code #b02b049c
- Some dialogs were not fully translated #e38691d5
- Feed type buttons: Removed the "grow / last" class / hack #c46149d8
- Lib update: NPM 7.10.0
- Removed CORS on the server
## 1.2.7
......
# Pétrolette
*RSS/Atom morning news reader ; Works at night too.*
---
## Pétrolette
[![pipeline status](https://framagit.org/yphil/petrolette/badges/master/pipeline.svg)](https://framagit.org/yphil/petrolette/-/pipelines)
[![License GPLv3](https://img.shields.io/badge/license-GPL_v3-green.svg)](http://www.gnu.org/licenses/gpl-3.0.html)
[![Liberapay](https://img.shields.io/badge/donate-Liberapay-yellow.svg)](https://liberapay.com/yPhil/donate)
[![PayPal Donate](https://img.shields.io/badge/donate-PayPal.me-ff69b4.svg)](https://www.paypal.me/yphil)
---
<!-- [![coverage](https://framagit.org/yphil/petrolette/badges/master/coverage.svg)](https://framagit.org/yphil/petrolette/-/pipelines) -->
## Welcome to the Internet
[Pétrolette](http://petrolette.space) is a news reading home page, [free](https://framagit.org/yphil/petrolette/-/blob/master/LICENSE). It is immediately usable **without registration** with the same URL on the desktop or a mobile device.
News feeds are organized into tabs, which can contain an infinite number of columns; everything is configurable, and saved directly in the browser cache. To view the same feeds on your phone, either export / import the `petrolette.conf` file, or (recommended) use the user's personal cloud synchronization feature.
News feeds are organized into tabs, which can contain an infinite number of columns; everything is configurable, and saved directly in the browser [permanent cache](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage). To view the same feeds on your phone, either export / import your `petrolette.conf` file, or (recommended) use your personal cloud (Google Drive, Dropbox, [5apps](https://5apps.com/storage), etc.) synchronization feature.
![Petrolette](https://framagit.org/yphil/assets/-/raw/master/img/petrolette.png)
## Features
- Reads modern feeds (Atom, Media-RSS, etc.)
- Searches for feeds in a page / website
- Displays all modern feeds (Atom, Media-RSS, etc.)
- Search / discovery of the feed in a page / website
- Direct link to the article's resources (image, video, sound) for opening in an external reader
- Advanced image management
- Import / Export of the feeds file
- Online synchronization (5apps, Google Drive, Dropbox)
- Construction of web search feeds
- Mobile / responsive interface
- Advanced image management (Download, Gallery, etc.)
- Import / Export of the feeds file (Replace / Merge)
- Online synchronization ([5apps](https://5apps.com/storage), Google Drive, Dropbox)
- Construction of [search feeds](https://search.modalogi.com/searx/search?categories=news&language=en-US&format=rss&q=zombie,attack) using a configurable search engine
- Mobile / phone / tablet / responsive interface
- Bookmarklet for adding the feed of a site to Pétrolette on the fly
- Compatible with FLOSS browsers (uncompressed executable files, licenses available directly and in standard format)
......
{
"name": "petrolette",
"version": "1.2.7",
"version": "1.2.8",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"version": "1.2.7",
"version": "1.2.8",
"hasInstallScript": true,
"license": "GPL-3.0-only",
"dependencies": {
"body-parser": "^1.19.0",
"bower": "^1.8.12",
"compression": "^1.7.4",
"cors": "^2.8.5",
"ejs": "^3.1.5",
"express": "^4.17.1",
"favrat": "git+https://framagit.org/yphil/favrat.git",
......@@ -1419,18 +1418,6 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"node_modules/cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"dependencies": {
"object-assign": "^4",
"vary": "^1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/cron": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz",
......@@ -3299,7 +3286,181 @@
"treeverse",
"validate-npm-package-name",
"which",
"write-file-atomic"
"write-file-atomic",
"@npmcli/disparity-colors",
"@npmcli/git",
"@npmcli/installed-package-contents",
"@npmcli/map-workspaces",
"@npmcli/metavuln-calculator",
"@npmcli/move-file",
"@npmcli/name-from-folder",
"@npmcli/node-gyp",
"@npmcli/promise-spawn",
"@tootallnate/once",
"agent-base",
"agentkeepalive",
"aggregate-error",
"ajv",
"ansi-regex",
"ansi-styles",
"aproba",
"are-we-there-yet",
"asap",
"asn1",
"assert-plus",
"asynckit",
"aws-sign2",
"aws4",
"balanced-match",
"bcrypt-pbkdf",
"bin-links",
"binary-extensions",
"brace-expansion",
"builtins",
"caseless",
"cidr-regex",
"clean-stack",
"clone",
"cmd-shim",
"code-point-at",
"color-convert",
"color-name",
"colors",
"combined-stream",
"common-ancestor-path",
"concat-map",
"console-control-strings",
"core-util-is",
"dashdash",
"debug",
"debuglog",
"defaults",
"delayed-stream",
"delegates",
"depd",
"dezalgo",
"diff",
"ecc-jsbn",
"emoji-regex",
"encoding",
"env-paths",
"err-code",
"extend",
"extsprintf",
"fast-deep-equal",
"fast-json-stable-stringify",
"forever-agent",
"form-data",
"fs-minipass",
"fs.realpath",
"function-bind",
"gauge",
"getpass",
"har-schema",
"har-validator",
"has",
"has-flag",
"has-unicode",
"http-cache-semantics",
"http-proxy-agent",
"http-signature",
"https-proxy-agent",
"humanize-ms",
"iconv-lite",
"ignore-walk",
"imurmurhash",
"indent-string",
"infer-owner",
"inflight",
"inherits",
"ip",
"ip-regex",
"is-core-module",
"is-fullwidth-code-point",
"is-lambda",
"is-typedarray",
"isarray",
"isexe",
"isstream",
"jsbn",
"json-schema",
"json-schema-traverse",
"json-stringify-nice",
"json-stringify-safe",
"jsonparse",
"jsprim",
"just-diff",
"just-diff-apply",
"lru-cache",
"mime-db",
"mime-types",
"minimatch",
"minipass-collect",
"minipass-fetch",
"minipass-flush",
"minipass-json-stream",
"minipass-sized",
"minizlib",
"mute-stream",
"normalize-package-data",
"npm-bundled",
"npm-install-checks",
"npm-normalize-package-bin",
"npm-packlist",
"number-is-nan",
"oauth-sign",
"object-assign",
"once",
"p-map",
"path-is-absolute",
"path-parse",
"performance-now",
"process-nextick-args",
"promise-all-reject-late",
"promise-call-limit",
"promise-inflight",
"promise-retry",
"promzard",
"psl",
"punycode",
"qs",
"read-cmd-shim",
"readable-stream",
"request",
"resolve",
"retry",
"safe-buffer",
"safer-buffer",
"set-blocking",
"signal-exit",
"smart-buffer",
"socks",
"socks-proxy-agent",
"spdx-correct",
"spdx-exceptions",
"spdx-expression-parse",
"spdx-license-ids",
"sshpk",
"string_decoder",
"string-width",
"stringify-package",
"strip-ansi",
"supports-color",
"tunnel-agent",
"tweetnacl",
"typedarray-to-buffer",
"unique-filename",
"unique-slug",
"uri-js",
"util-deprecate",
"uuid",
"validate-npm-package-license",
"verror",
"walk-up-path",
"wcwidth",
"wide-align",
"wrappy",
"yallist"
],
"dependencies": {
"@npmcli/arborist": "^2.3.0",
......@@ -5235,13 +5396,6 @@
"inBundle": true,
"license": "MIT"
},
"node_modules/npm/node_modules/puka": {
"version": "1.0.1",
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/npm/node_modules/punycode": {
"version": "2.1.1",
"inBundle": true,
......@@ -6052,14 +6206,6 @@
"node": ">=6"
}
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
......@@ -8870,15 +9016,6 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"requires": {
"object-assign": "^4",
"vary": "^1"
}
},
"cron": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz",
......@@ -11650,9 +11787,6 @@
"version": "1.8.0",
"bundled": true
},
"puka": {
"version": "1.0.1"
},
"punycode": {
"version": "2.1.1",
"bundled": true
......@@ -12271,11 +12405,6 @@
}
}
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
......
{
"name": "petrolette",
"description": "News reading webapp.",
"description": "The news reader that doesn't know you",
"version": "1.2.8",
"private": true,
"license": "GPL-3.0-only",
"HTTP_PORT": 8000,
"HTTPS_PORT": 8001,
"FAVICONS_CACHE_DIR": "favicons-cache",
"engines": {
"node": "*"
......@@ -31,7 +30,6 @@
"body-parser": "^1.19.0",
"bower": "^1.8.12",
"compression": "^1.7.4",
"cors": "^2.8.5",
"ejs": "^3.1.5",
"express": "^4.17.1",
"favrat": "git+https://framagit.org/yphil/favrat.git",
......@@ -41,7 +39,7 @@
"iconv-lite": "^0.6.2",
"morgan": "^1.10.0",
"node-fetch": "^2.6.1",
"npm": "^7.9.0",
"npm": "^7.10.0",
"pm2": "^4.5.6",
"sanitize": "^2.1.0"
},
......
......@@ -5,7 +5,6 @@ const express = require('express'),
pjson = require('./package.json'),
bodyParser = require('body-parser'),
app = express(),
cors = require('cors'),
helmet = require("helmet"),
compression = require('compression');
......@@ -37,7 +36,6 @@ app.disable('x-powered-by');
app.use(compression());
app.use(helmet.originAgentCluster());
app.use(helmet.noSniff());
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
......
......@@ -248,6 +248,7 @@ PTL.dialog = {
$dialog.dialog({
title: isNewFeed ? PTL.tr('New feed') : PTL.tr('Feed'),
width: PTL.util.isMobile() ? 'auto' : 630,
buttons: [
{
text: PTL.tr('Cancel'),
......
......@@ -387,10 +387,10 @@ var PTL = (function() {
$.extend($.ui.dialog.prototype.options, {
closeOnEscape: true,
resizable: true,
height: 'auto',
width: 'auto',
modal: true,
autoOpen: false,
height: 'auto',
width: 'auto',
position: {
my: "center",
at: "center",
......
......@@ -36,8 +36,9 @@
</div>
</fieldset>
<legend data-content="Group"
class="ui-corner-top translate">Group
<legend data-content="Tab"
class="ui-corner-top translate">
Tab
</legend>
<fieldset id="feedGroupFieldset" class="ui-widget ui-widget-content ui-corner-all">
......@@ -60,19 +61,19 @@
<label data-title="Display only text"
data-content="Text"
class="translate grow"
class="translate"
for="text" >Text</label>
<input type="radio" name="radio-1" id="text">
<label data-title="Display text and image"
data-content="Mixed"
for="mixed"
class="translate grow">Mixed</label>
class="translate">Mixed</label>
<input type="radio" name="radio-1" id="mixed">
<label data-title="Display only image"
data-content="Image"
class="last translate grow"
class="translate"
for="photo">Image</label>
<input type="radio" name="radio-1" id="photo">
......@@ -80,7 +81,9 @@
</fieldset>
<legend data-content="Height"
class="ui-corner-top translate">Height</legend>
class="ui-corner-top translate">
Height
</legend>
<fieldset id="feedLimitFieldset" class="ui-widget ui-widget-content ui-corner-all" data-title="Woyo!">
<div class="flex-box translate"
data-title="Number of items displayed in this feed">
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment