1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/nitter_ynh.git synced 2024-09-03 19:46:24 +02:00

Merge pull request #21 from YunoHost-Apps/upgrade

Add config panel
This commit is contained in:
Éric Gaspar 2022-06-20 23:29:10 +02:00 committed by GitHub
commit 94222f84af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 189 additions and 137 deletions

View file

@ -1,58 +1,67 @@
<!--
N.B.: This README was automatically generated by https://github.com/YunoHost/apps/tree/master/tools/README-generator
It shall NOT be edited by hand.
-->
# Nitter for YunoHost
[![Integration level](https://dash.yunohost.org/integration/nitter.svg)](https://dash.yunohost.org/appci/app/nitter) ![](https://ci-apps.yunohost.org/ci/badges/nitter.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/nitter.maintain.svg)
[![Integration level](https://dash.yunohost.org/integration/nitter.svg)](https://dash.yunohost.org/appci/app/nitter) ![Working status](https://ci-apps.yunohost.org/ci/badges/nitter.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/nitter.maintain.svg)
[![Install Nitter with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=nitter)
*[Lire ce readme en français.](./README_fr.md)*
> *This package allows you to install Nitter quickly and simply on a YunoHost server.
> *This package allows you to install Nitter quickly and simply on a YunoHost server.
If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.*
## Overview
Nitter is an alternative front-end for Twitter that is faster than the official website, respects your privacy, and does not require login. It uses responsive design (works well on all screen sizes). Nitter also offers to generate RSS feeds from Twitter user timeleines.
This app requires a dedicated root domain.
A free and open source alternative Twitter front-end focused on privacy and performance.
Inspired by the Invidious project.
**Shipped version:** 2022-06-09
### Features
- No JavaScript or ads
- All requests go through the backend, client never talks to Twitter
- Prevents Twitter from tracking your IP or JavaScript fingerprint
- Uses Twitter's unofficial API (no rate limits or developer account required)
- Lightweight (for @nim_lang, 60KB vs 784KB from twitter.com)
- RSS feeds
- Themes
- Mobile support (responsive design)
**Shipped version:** 2022.06.19~ynh1
**Demo:** https://nitter.net/
## Screenshots
![](https://raw.githubusercontent.com/zedeus/nitter/master/screenshot.png)
![Screenshot of Nitter](./doc/screenshots/screenshot.png)
## Demo
## Disclaimers / important information
* [Official demo](https://nitter.net)
### Configuration
## Configuration
This app requires a dedicated root domain.
The app's config file is stored in `/opt/yunohost/nitter/nitter.conf` (for the first instance, subsequent installs will go in `nitter__2`, `nitter__3`, etc).
Users can override the defaults and set custom settings at `https://instance-domain.tld/settings`.
Nitter config file is stored in `/opt/yunohost/nitter/nitter.conf` (for the first instance, subsequent installs will go in `nitter__2`, `nitter__3`, etc). Users can override the defaults and set custom settings at `https://instance-domain.tld/settings`.
## Documentation and resources
## Documentation
* Official documentation: https://github.com/zedeus/nitter/wiki
#### Multi-user support
* Are LDAP and HTTP auth supported? **No**
* Can the app be used by multiple users? **Yes**
## Links
* Report a bug: https://github.com/YunoHost-Apps/nitter_ynh/issues
* App website: https://github.com/zedeus/nitter
* Upstream app repository: https://github.com/zedeus/nitter
* YunoHost website: https://yunohost.org/
---
* Official app website: <https://nitter.net/>
* Official admin documentation: <https://github.com/zedeus/nitter/wiki>
* Upstream app code repository: <https://github.com/zedeus/nitter>
* YunoHost documentation for this app: <https://yunohost.org/app_nitter>
* Report a bug: <https://github.com/YunoHost-Apps/nitter_ynh/issues>
## Developer info
Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/nitter_ynh/tree/testing).
To try the testing branch, please proceed like that.
```
``` bash
sudo yunohost app install https://github.com/YunoHost-Apps/nitter_ynh/tree/testing --debug
or
sudo yunohost app upgrade nitter -u https://github.com/YunoHost-Apps/nitter_ynh/tree/testing --debug
```
**More info regarding app packaging:** <https://yunohost.org/packaging_apps>

View file

@ -1,58 +1,67 @@
<!--
N.B.: This README was automatically generated by https://github.com/YunoHost/apps/tree/master/tools/README-generator
It shall NOT be edited by hand.
-->
# Nitter pour YunoHost
[![Niveau d'intégration](https://dash.yunohost.org/integration/nitter.svg)](https://dash.yunohost.org/appci/app/nitter) ![](https://ci-apps.yunohost.org/ci/badges/nitter.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/nitter.maintain.svg)
[![Niveau d'intégration](https://dash.yunohost.org/integration/nitter.svg)](https://dash.yunohost.org/appci/app/nitter) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/nitter.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/nitter.maintain.svg)
[![Installer Nitter avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=nitter)
*[Read this readme in english.](./README.md)*
*[Read this readme in english.](./README.md)*
> *Ce package vous permet d'installer Nitter rapidement et simplement sur un serveur YunoHost.
Si vous n'avez pas YunoHost, consultez [le guide](https://yunohost.org/#/install) pour apprendre comment l'installer.*
> *Ce package vous permet d'installer Nitter rapidement et simplement sur un serveur YunoHost.
Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.*
## Vue d'ensemble
Nitter est une interface alternative pour Twitter qui est plus rapide que le site officiel, respecte votre vie privée, est ne nécessite pas de s'enregistrer. Son nterface s'adapte aux écrans de toutes tailles. Nitter offre aussi de générer des flux RSS à partir des timelines des utilisateurs Twitter.
Cette application nécéssite un domaine dedié.
### Fonctionnalités
**Version incluse :** 2022-06-09
- Pas de JavaScript ni de publicités
- Toutes les demandes passent par le backend, le client ne communique jamais avec Twitter
- Empêche Twitter de suivre votre adresse IP ou votre empreinte JavaScript
- Utilise l'API non officielle de Twitter (aucune limite de débit ni compte de développeur requis)
- Léger (pour @nim_lang, 60KB contre 784KB de twitter.com)
- Flux RSS
- Thèmes
- Support mobile (conception réactive)
**Version incluse :** 2022.06.19~ynh1
**Démo :** https://nitter.net/
## Captures d'écran
![](https://raw.githubusercontent.com/zedeus/nitter/master/screenshot.png)
![Capture d'écran de Nitter](./doc/screenshots/screenshot.png)
## Démo
## Avertissements / informations importantes
* [Démo officielle](htts://nitter.net)
### Configuration
## Configuration
Cette application nécéssite un domaine dedié.
Le ficher de configuration de l'appli se trouve à `/opt/yunohost/nitter/nitter.conf` (pour la première installation, les prochaines installations iront dans `nitter__2`, `nitter__3`, etc).
Les utilisateurs peuvent modifier les paramétres par défaut en visitant`https://instance-domain.tld/settings`.
Le ficher de configuration de Nitter se trouve à `/opt/yunohost/nitter/nitter.conf` (pour la première installation, les prochaines installations iront dans `nitter__2`, `nitter__3`, etc). Les utilisateurs peuvent modifier les paramétres par défaut en visitant `https://instance-domain.tld/settings`.
## Documentations et ressources
## Documentation
* Documentation officielle : https://github.com/zedeus/nitter/wiki
#### Support multi-utilisateur
* L'authentification LDAP et HTTP est-elle prise en charge ? **Non**
* L'application peut-elle être utilisée par plusieurs utilisateurs ? **Oui**
## Liens
* Signaler un bug : https://github.com/YunoHost-Apps/nitter_ynh/issues
* Site de l'application : https://github.com/zedeus/nitter
* Dépôt de l'application principale : https://github.com/zedeus/nitter
* Site web YunoHost : https://yunohost.org/
---
* Site officiel de l'app : <https://nitter.net/>
* Documentation officielle de l'admin : <https://github.com/zedeus/nitter/wiki>
* Dépôt de code officiel de l'app : <https://github.com/zedeus/nitter>
* Documentation YunoHost pour cette app : <https://yunohost.org/app_nitter>
* Signaler un bug : <https://github.com/YunoHost-Apps/nitter_ynh/issues>
## Informations pour les développeurs
Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/nitter_ynh/tree/testing).
Pour essayer la branche testing, procédez comme suit.
```
``` bash
sudo yunohost app install https://github.com/YunoHost-Apps/nitter_ynh/tree/testing --debug
ou
sudo yunohost app upgrade nitter -u https://github.com/YunoHost-Apps/nitter_ynh/tree/testing --debug
```
**Plus d'infos sur le packaging d'applications :** <https://yunohost.org/packaging_apps>

View file

@ -1,12 +1,7 @@
# See here for more information
# https://github.com/YunoHost/package_check#syntax-check_process-file
# Move this file from check_process.default to check_process when you have filled it.
;; Test complet
; Manifest
domain="domain.tld" (DOMAIN)
is_public=1 (PUBLIC|public=1|private=0)
domain="domain.tld"
is_public=1
; Checks
pkg_linter=1
setup_sub_dir=0

View file

@ -1,5 +1,5 @@
SOURCE_URL=https://github.com/zedeus/nitter/tarball/b398136742f9b784b2d5c8b5baa9f25a3560b5a0
SOURCE_SUM=4d8646398bc668f014472396597a81ed7a7d5350187a5ef7b48e9a8aaffd3a6e
SOURCE_URL=https://github.com/zedeus/nitter/tarball/5e827c91aa1b5f41cc03c5bb07b6fe629002430b
SOURCE_SUM=e4395aecfa59c464987fcd61cc60442b5024fea80815ae86d48cd0b35a13f15d
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.gz
SOURCE_IN_SUBDIR=true

View file

@ -33,7 +33,8 @@ tokenCount = 10
theme = "__THEME__"
replaceTwitter = "__DOMAIN__"
replaceYouTube = "__REPLACE_YOUTUBE__"
replaceReddit = "__REPLACE_REDDIT__"
replaceInstagram = "__REPLACE_INSTAGRAM__"
proxyVideos = __PROXY_VIDEOS__
hlsPlayback = __HLS_PLAYBACK__
infiniteScroll = __INFINITE_SCROLL__
proxyVideos = true
hlsPlayback = true
infiniteScroll = false

View file

@ -1,5 +1,5 @@
[Unit]
Description=Small description of the service
Description=Nitter: Alternative Twitter front-end
After=network.target redis.service
[Service]

44
config_panel.toml Normal file
View file

@ -0,0 +1,44 @@
version = "1.0"
[main]
name = "Nitter configuration"
services = ["__APP__"]
[main.config]
name = "Configuration Options"
[main.config.title]
ask = "Default title"
type = "string"
default = "Nitter"
help = "Choose a default title for this instance"
bind = "title:__FINALPATH__/nitter.conf"
[main.config.theme]
ask = "Default theme"
type = "select"
choices = ["Auto", "Black", "Mastodon", "Nitter", "Pleroma", "Twitter", "Twitter dark"]
default = "Auto"
help = "Choose a default theme for this instance"
bind = "theme:__FINALPATH__/nitter.conf"
[main.config.replace_reddit]
ask = "Libreddit instance"
type = "string"
default = "https://libredd.it/"
help = "Replace Instagram links with a Libreddit instance"
bind = "replaceInstagram:__FINALPATH__/nitter.conf"
[main.config.replace_instagram]
ask = "Bibliogram instance"
type = "string"
default = "https://bibliogram.art/"
help = "Replace Instagram links with a Bibliogram instance"
bind = "replaceInstagram:__FINALPATH__/nitter.conf"
[main.config.replace_youtube]
ask = "Invidious instance"
type = "string"
default = "https://invidious.fdn.fr/"
help = "Replace YouTube links with an Invidious instance"
bind = "replaceYouTube:__FINALPATH__/nitter.conf"

12
doc/DESCRIPTION.md Normal file
View file

@ -0,0 +1,12 @@
A free and open source alternative Twitter front-end focused on privacy and performance.
Inspired by the Invidious project.
### Features
- No JavaScript or ads
- All requests go through the backend, client never talks to Twitter
- Prevents Twitter from tracking your IP or JavaScript fingerprint
- Uses Twitter's unofficial API (no rate limits or developer account required)
- Lightweight (for @nim_lang, 60KB vs 784KB from twitter.com)
- RSS feeds
- Themes
- Mobile support (responsive design)

12
doc/DESCRIPTION_fr.md Normal file
View file

@ -0,0 +1,12 @@
Nitter est une interface alternative pour Twitter qui est plus rapide que le site officiel, respecte votre vie privée, est ne nécessite pas de s'enregistrer. Son nterface s'adapte aux écrans de toutes tailles. Nitter offre aussi de générer des flux RSS à partir des timelines des utilisateurs Twitter.
### Fonctionnalités
- Pas de JavaScript ni de publicités
- Toutes les demandes passent par le backend, le client ne communique jamais avec Twitter
- Empêche Twitter de suivre votre adresse IP ou votre empreinte JavaScript
- Utilise l'API non officielle de Twitter (aucune limite de débit ni compte de développeur requis)
- Léger (pour @nim_lang, 60KB contre 784KB de twitter.com)
- Flux RSS
- Thèmes
- Support mobile (conception réactive)

5
doc/DISCLAIMER.md Normal file
View file

@ -0,0 +1,5 @@
### Configuration
This app requires a dedicated root domain.
Nitter config file is stored in `/opt/yunohost/nitter/nitter.conf` (for the first instance, subsequent installs will go in `nitter__2`, `nitter__3`, etc). Users can override the defaults and set custom settings at `https://instance-domain.tld/settings`.

5
doc/DISCLAIMER_fr.md Normal file
View file

@ -0,0 +1,5 @@
### Configuration
Cette application nécéssite un domaine dedié.
Le ficher de configuration de Nitter se trouve à `/opt/yunohost/nitter/nitter.conf` (pour la première installation, les prochaines installations iront dans `nitter__2`, `nitter__3`, etc). Les utilisateurs peuvent modifier les paramétres par défaut en visitant `https://instance-domain.tld/settings`.

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 KiB

View file

@ -6,15 +6,22 @@
"en": "Alternative front-end for Twitter that respects your privacy",
"fr": "Interface alternative pour Twitter qui respecte votre vie privée"
},
"version": "2022.06.09~ynh1",
"version": "2022.06.19~ynh1",
"url": "https://github.com/zedeus/nitter",
"upstream": {
"license": "AGPL-3.0-only",
"website": "https://nitter.net/",
"demo": "https://nitter.net/",
"admindoc": "https://github.com/zedeus/nitter/wiki",
"code": "https://github.com/zedeus/nitter"
},
"license": "AGPL-3.0-only",
"maintainer": {
"name": "Jules Bertholet",
"email": "jules.bertholet@gmail.com"
},
"requirements": {
"yunohost": ">= 4.1.3"
"yunohost": ">= 4.3.0"
},
"multi_instance": true,
"services": [
@ -39,7 +46,7 @@
{
"name": "title",
"type": "string",
"default": "nitter",
"default": "Nitter",
"ask": {
"en": "Name of the instance",
"fr": "Nom de l'instance"
@ -96,42 +103,17 @@
}
},
{
"name": "proxy_videos",
"type": "boolean",
"default": true,
"name": "replace_reddit",
"type": "string",
"optional": true,
"default": "",
"ask": {
"en": "Proxy Twitter videos through Nitter by default",
"fr": "Retransmettre les vidéos Twitter via le serveur par défaut"
"en": "Replace Reddit links with a Libreddit instance",
"fr": "Remplacer les liens Reddit avec une instance Libreddit"
},
"help": {
"en": "Users can override this setting",
"fr": "Les utilisateurs peuvent modifier ce paramétre"
}
},
{
"name": "hls_playback",
"type": "boolean",
"default": true,
"ask": {
"en": "Enable HLS video playback by default",
"fr": "Activer la lecture des videos HLS par défaut"
},
"help": {
"en": "Requires Javascript. Users can override this setting.",
"fr": "Cette fonctionalité requiert Javascript. Les utilisateurs peuvent modifier ce paramétre."
}
},
{
"name": "infinite_scroll",
"type": "boolean",
"default": false,
"ask": {
"en": "Enable infinite scrolling by default",
"fr": "Activer le défilement infini par défaut"
},
"help": {
"en": "Experimental, requires Javascript. Users can override this setting.",
"fr": "Cette fonctionalité est expérimentale et requiert Javascript. Les utilisateurs peuvent modifier ce paramétre."
"en": "You can choose to rewrite Reddit links in tweets to point to a Libreddit instance. Use https://libredd.it/ or install Libreddit on your server! Users can override this setting.",
"fr": "Vous pouvez choisir de réécrire les liens Reddit dans les tweets pour pointer vers une instance Libreddit. Choisissez https://libredd.it/ ou installez Libreddit sur votre serveur! Les utilisateurs peuvent modifier ce paramétre."
}
}
]

View file

@ -12,14 +12,14 @@ pkg_dependencies="acl nim libsass-dev"
#=================================================
function build_nitter {
pushd "$final_path" || ynh_die
pushd "$final_path"
chown -R $app:$app $final_path
sudo -u $app env "PATH=/opt/yunohost/$app/nim-installation/bin:$(sudo -u $app sh -c 'echo $PATH')" nimble build -d:release -y -d:danger --passC:"-flto" --passL:"-flto" 2>&1
sudo -u $app env "PATH=/opt/yunohost/$app/nim-installation/bin:$(sudo -u $app sh -c 'echo $PATH')" strip -s nitter 2>&1
sudo -u $app env "PATH=/opt/yunohost/$app/nim-installation/bin:$(sudo -u $app sh -c 'echo $PATH')" nimble scss -y 2>&1
mkdir -p $final_path/tmp
chown -R root:root $final_path
popd || ynh_die
popd
}
function set_permissions {

View file

@ -27,22 +27,7 @@ title=$YNH_APP_ARG_TITLE
theme=$YNH_APP_ARG_THEME
replace_youtube=$YNH_APP_ARG_REPLACE_YOUTUBE
replace_instagram=$YNH_APP_ARG_REPLACE_INSTAGRAM
architecture=$YNH_ARCH
if [ $YNH_APP_ARG_PROXY_VIDEOS -eq 1 ]; then
proxy_videos="true"
else
proxy_videos="false"
fi
if [ $YNH_APP_ARG_HLS_PLAYBACK -eq 1 ]; then
hls_playback="true"
else
hls_playback="false"
fi
if [ $YNH_APP_ARG_INFINITE_SCROLL -eq 1 ]; then
infinite_scroll="true"
else
infinite_scroll="false"
fi
replace_reddit=$YNH_APP_ARG_REPLACE_REDDIT
hmac_key=$(ynh_string_random --length=64)
app=$YNH_APP_INSTANCE_NAME
@ -69,9 +54,7 @@ ynh_app_setting_set --app=$app --key=title --value=$title
ynh_app_setting_set --app=$app --key=theme --value=$theme
ynh_app_setting_set --app=$app --key=replace_youtube --value=$replace_youtube
ynh_app_setting_set --app=$app --key=replace_instagram --value=$replace_instagram
ynh_app_setting_set --app=$app --key=proxy_videos --value=$proxy_videos
ynh_app_setting_set --app=$app --key=hls_playback --value=$hls_playback
ynh_app_setting_set --app=$app --key=infinite_scroll --value=$infinite_scroll
ynh_app_setting_set --app=$app --key=replace_reddit --value=$replace_reddit
ynh_app_setting_set --app=$app --key=hmac_key --value=$hmac_key
#=================================================
@ -100,7 +83,7 @@ ynh_script_progression --message="Setting up source files..." --weight=1
ynh_app_setting_set --app=$app --key=final_path --value=$final_path
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$final_path" --source_id="app"
ynh_setup_source --dest_dir="$final_path/nim-installation" --source_id="$architecture"
ynh_setup_source --dest_dir="$final_path/nim-installation" --source_id=$YNH_ARCH
#=================================================
# NGINX CONFIGURATION

View file

@ -25,11 +25,8 @@ title=$(ynh_app_setting_get --app=$app --key=title)
theme=$(ynh_app_setting_get --app=$app --key=theme)
replace_youtube=$(ynh_app_setting_get --app=$app --key=replace_youtube)
replace_instagram=$(ynh_app_setting_get --app=$app --key=replace_instagram)
proxy_videos=$(ynh_app_setting_get --app=$app --key=proxy_videos)
hls_playback=$(ynh_app_setting_get --app=$app --key=hls_playback)
infinite_scroll=$(ynh_app_setting_get --app=$app --key=infinite_scroll)
replace_reddit=$(ynh_app_setting_get --app=$app --key=replace_reddit)
hmac_key=$(ynh_app_setting_get --app=$app --key=hmac_key)
architecture=$YNH_ARCH
#=================================================
# CHECK VERSION
@ -69,10 +66,8 @@ then
ynh_script_progression --message="Upgrading source files..." --weight=1
# Download, check integrity, uncompress and patch the source from app.src
mv "$final_path/nitter.conf" "$final_path/nitter.conf.bak"
ynh_setup_source --dest_dir="$final_path" --source_id="app"
ynh_setup_source --dest_dir="$final_path/nim-installation" --source_id="$architecture"
mv "$final_path/nitter.conf.bak" "$final_path/nitter.conf"
ynh_setup_source --dest_dir="$final_path/nim-installation" --source_id=$YNH_ARCH --keep="$final_path/nitter.conf"
fi
#=================================================