kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
chore: clean files using pre-commit
rodzic
f4dbc584e1
commit
0061e82ecd
|
@ -7,15 +7,15 @@ Before you begin, here are some helpful tips for submitting an issue:
|
|||
* If you need help setting up or using Funkwhale, try asking in our
|
||||
[forum's support board](https://forum.funkwhale.audio/support) or our [support
|
||||
chat room](https://riot.im/app/#/room/#funkwhale-support:tchncs.de).
|
||||
* If you think you've found a bug but aren't sure, you can ask in one of the above channels
|
||||
first. Once you're confident it's a bug, go ahead and create an issue for us to investigate.
|
||||
* If you think you've found a bug but aren't sure, you can ask in one of the above channels
|
||||
first. Once you're confident it's a bug, go ahead and create an issue for us to investigate.
|
||||
Select the **Bug** template in the **Description** dropdown menu. This template contains
|
||||
helpful tips for creating your report.
|
||||
* For smaller additions and enhancements, please file a feature request.
|
||||
Select the **Feature Request** template in the **Description** dropdown
|
||||
menu. This template contains helpful tips for creating your request.
|
||||
* If you have ideas for new features or use cases, consider opening a thread in our
|
||||
[forum](https://forum.funkwhale.audio/t/development). This enables us to
|
||||
* If you have ideas for new features or use cases, consider opening a thread in our
|
||||
[forum](https://forum.funkwhale.audio/t/development). This enables us to
|
||||
discuss the feature, its use cases, and the development effort it requires.
|
||||
|
||||
We always like hearing ideas from our community. If you're still not sure, click
|
||||
|
@ -24,4 +24,3 @@ the **Create issue** button and we'll work with you to sort out the issue.
|
|||
Happy listening! :whale:
|
||||
|
||||
-->
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Please avoid merging the base branch into your feature branch. We are working with rebases and those merged tend to cause trouble.
|
||||
Please avoid merging the base branch into your feature branch. We are working with rebases and those merged tend to cause trouble.
|
||||
For further questions, join us at Matrix: https://matrix.to/#/#funkwhale-dev:matrix.org
|
||||
|
||||
If your contribution is fixing an issue by a small change, please consider a merge into `stable` by using it as target branch.
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
},
|
||||
{
|
||||
"matchPackageNames": ["node"],
|
||||
"allowedVersions": "/\d+[02468]$/"
|
||||
"allowedVersions": "/\\d+[02468]$/"
|
||||
},
|
||||
{
|
||||
"matchFiles": ["deploy/docker-compose.yml"],
|
||||
|
|
|
@ -6,4 +6,4 @@ RUN sudo apt update -y \
|
|||
|
||||
RUN pip install poetry \
|
||||
&& poetry config virtualenvs.create true \
|
||||
&& poetry config virtualenvs.in-project true
|
||||
&& poetry config virtualenvs.in-project true
|
||||
|
|
|
@ -40,4 +40,4 @@ services:
|
|||
- ../deploy/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro
|
||||
- ../docker/nginx/conf.dev:/etc/nginx/nginx.conf.template:ro
|
||||
- ../docker/nginx/entrypoint.sh:/entrypoint.sh:ro
|
||||
- ../front:/frontend:ro
|
||||
- ../front:/frontend:ro
|
||||
|
|
|
@ -20,5 +20,6 @@ repos:
|
|||
- id: check-vcs-permalinks
|
||||
- id: check-merge-conflict
|
||||
- id: end-of-file-fixer
|
||||
exclude: ^(docs/locales/.*/LC_MESSAGES)
|
||||
- id: mixed-line-ending
|
||||
- id: trailing-whitespace
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
|
@ -31,4 +28,4 @@
|
|||
"django": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[MASTER]
|
||||
load-plugins=pylint_common, pylint_django, pylint_celery
|
||||
load-plugins=pylint_common, pylint_django, pylint_celery
|
||||
|
||||
[FORMAT]
|
||||
max-line-length=120
|
||||
|
@ -8,4 +8,4 @@ max-line-length=120
|
|||
disable=missing-docstring,invalid-name
|
||||
|
||||
[DESIGN]
|
||||
max-parents=13
|
||||
max-parents=13
|
||||
|
|
|
@ -46,7 +46,7 @@ urlpatterns = [
|
|||
# with proper key.
|
||||
# If you don't want to use API on that step, then just use ConfirmEmailView
|
||||
# view from:
|
||||
# djang-allauth https://github.com/pennersr/django-allauth/blob/master/allauth/account/views.py#L190
|
||||
# https://github.com/pennersr/django-allauth/blob/a62a370681/allauth/account/views.py#L291
|
||||
url(
|
||||
r"^registration/account-confirm-email/(?P<key>\w+)/?$",
|
||||
TemplateView.as_view(),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import django
|
||||
import os
|
||||
import sys
|
||||
|
|
|
@ -4549,4 +4549,4 @@
|
|||
"http://creativecommons.org/publicdomain/zero/1.0/"
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -1 +1 @@
|
|||
Adding support for play all radio in search result page (#1563)
|
||||
Adding support for play all radio in search result page (#1563)
|
||||
|
|
|
@ -1 +1 @@
|
|||
New task checking if remote instance is reachable to avoid playback latence (#1711)
|
||||
New task checking if remote instance is reachable to avoid playback latence (#1711)
|
||||
|
|
|
@ -1 +1 @@
|
|||
Hide create custom radio to un-authenticated users (#1720)
|
||||
Hide create custom radio to un-authenticated users (#1720)
|
||||
|
|
|
@ -1 +1 @@
|
|||
Update migration after django update (#1815)
|
||||
Update migration after django update (#1815)
|
||||
|
|
|
@ -1 +1 @@
|
|||
Add Gitpod configuration and guide
|
||||
Add Gitpod configuration and guide
|
||||
|
|
|
@ -1 +1 @@
|
|||
Add playable tracks to gitpod instance
|
||||
Add playable tracks to gitpod instance
|
||||
|
|
|
@ -1 +1 @@
|
|||
Add python debug and test support for gitpod
|
||||
Add python debug and test support for gitpod
|
||||
|
|
|
@ -1 +1 @@
|
|||
Add playlists radio to search page (#1968)
|
||||
Add playlists radio to search page (#1968)
|
||||
|
|
|
@ -1 +1 @@
|
|||
Allow using default browser dark mode and update UI dynamically on change
|
||||
Allow using default browser dark mode and update UI dynamically on change
|
||||
|
|
|
@ -1 +1 @@
|
|||
Updated the installation guides to make installation steps clearer.
|
||||
Updated the installation guides to make installation steps clearer.
|
||||
|
|
|
@ -1 +1 @@
|
|||
Refactor node info endpoint to use proper serializers
|
||||
Refactor node info endpoint to use proper serializers
|
||||
|
|
|
@ -1 +1 @@
|
|||
Add a celery task to scan remote library (#1712)
|
||||
Add a celery task to scan remote library (#1712)
|
||||
|
|
|
@ -52,4 +52,4 @@ API breaking change in ``/api/v1/albums``
|
|||
To increase performance, querying ``/api/v1/albums`` doesn't return album tracks anymore. This caused
|
||||
some performance issues, especially as some albums and series have dozens or even hundreds of tracks.
|
||||
|
||||
If you want to retrieve tracks for an album, you can query ``/api/v1/tracks/?album=<albumid>``.
|
||||
If you want to retrieve tracks for an album, you can query ``/api/v1/tracks/?album=<albumid>``.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
### Gentoo init scripts
|
||||
### Gentoo init scripts
|
||||
|
||||
Copy the files to `/etc/init.d/`
|
||||
|
||||
|
@ -16,4 +16,4 @@ Starting funkwhale_server will automatically start the other two, as well as ngi
|
|||
|
||||
```
|
||||
# rc-service funkwhale_server start
|
||||
```
|
||||
```
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
NAME=funkwhalebeat
|
||||
PIDFILE=/var/run/$NAME.pid
|
||||
USER=funkwhale
|
||||
WORKDIR=/srv/funkwhale/api
|
||||
Celery=/srv/funkwhale/virtualenv/bin/celery
|
||||
WORKDIR=/srv/funkwhale/api
|
||||
Celery=/srv/funkwhale/virtualenv/bin/celery
|
||||
BEAT_ARGS="-A funkwhale_api.taskapp beat -l INFO"
|
||||
depend() {
|
||||
need net
|
||||
need net
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting Funkwhale Beat"
|
||||
cd /srv/funkwhale/api
|
||||
set -a && source /srv/funkwhale/config/.env && set +a
|
||||
echo ' start beat'
|
||||
echo ' start beat'
|
||||
start-stop-daemon --start --user $USER --make-pidfile --pidfile $PIDFILE -d $WORKDIR --exec $Celery -- $BEAT_ARGS >> /var/log/funk/worker.log 2>&1&
|
||||
echo 'Started Beat'
|
||||
echo
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
NAME=funkwhaleworker
|
||||
PIDFILE=/var/run/$NAME.pid
|
||||
USER=funkwhale
|
||||
WORKDIR=/srv/funkwhale/api
|
||||
Celery=/srv/funkwhale/virtualenv/bin/celery
|
||||
WORKDIR=/srv/funkwhale/api
|
||||
Celery=/srv/funkwhale/virtualenv/bin/celery
|
||||
WORKER_ARGS=" -A funkwhale_api.taskapp worker -l INFO"
|
||||
|
||||
depend() {
|
||||
need net
|
||||
need net
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting Funkwhale Worker"
|
||||
cd /srv/funkwhale/api
|
||||
set -a && source /srv/funkwhale/config/.env && set +a
|
||||
echo ' start beat'
|
||||
echo ' start beat'
|
||||
start-stop-daemon --start --user $USER --make-pidfile --pidfile $PIDFILE -d $WORKDIR --exec $Celery -- $WORKER_ARGS >> /var/log/funk/worker.log 2>&1&
|
||||
echo 'Started Worker'
|
||||
echo
|
||||
|
|
|
@ -17,4 +17,4 @@ help:
|
|||
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
%: Makefile
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
|
|
@ -148,7 +148,7 @@ Publish your allowed-domains list
|
|||
Whether to make your list of allowed domains public. Enable this if you want users to check who you are federating with.
|
||||
|
||||
Accountless report categories
|
||||
A list of {term}`categories <Report categories>` that {term}`anonymous` users can submit.
|
||||
A list of {term}`categories <Report categories>` that {term}`anonymous` users can submit.
|
||||
|
||||
```
|
||||
|
||||
|
|
|
@ -131,7 +131,7 @@ Serving files from an object store requires some changes to the reverse proxy.
|
|||
4. Add your S3 store URL to the `img-src` and `media-src` headers.
|
||||
|
||||
```{code-block} text
|
||||
add_header Content-Security-Policy "...img-src 'self' https://<your-s3-URL> data:;...media-src https://<your-s3-URL> 'self' data:";
|
||||
add_header Content-Security-Policy "...img-src 'self' https://<your-s3-URL> data:;...media-src https://<your-s3-URL> 'self' data:";
|
||||
```
|
||||
|
||||
5. Test your Nginx configuration.
|
||||
|
|
|
@ -260,7 +260,7 @@ docker-compose run --rm api python manage.py import_files $LIBRARY_ID "/srv/funk
|
|||
|
||||
Funkwhale doesn't delete track metadata when you delete a track. This is useful if you want to delete a file but keep a record of a track for created playlists or favorites.
|
||||
|
||||
If you want to remove the file's metadata when you delete the file, run `import_files` with the `--prune` flag. This flag removes the metadata of any
|
||||
If you want to remove the file's metadata when you delete the file, run `import_files` with the `--prune` flag. This flag removes the metadata of any
|
||||
|
||||
```{note}
|
||||
You can use the `--prune` flag with the `--watch` flag. This means Funkwhale removes the metadata of referenced files you delete from your storage.
|
||||
|
|
|
@ -86,7 +86,7 @@ That's it! Your directory structure should look like this:
|
|||
├── data # files served by the API
|
||||
└── static # storage location for persistent data
|
||||
└── media # storage location for media files
|
||||
└── music # storage location for audio files
|
||||
└── music # storage location for audio files
|
||||
└── front # frontend files for the user interface
|
||||
```
|
||||
|
||||
|
@ -98,17 +98,17 @@ Once you've created the directory structure you can download Funkwhale. Funkwhal
|
|||
|
||||
```{code-block} sh
|
||||
curl -L -o "api-$FUNKWHALE_VERSION.zip" "https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/$FUNKWHALE_VERSION/download?job=build_api"
|
||||
unzip "api-$FUNKWHALE_VERSION.zip" -d extracted
|
||||
mv extracted/api/* api/
|
||||
unzip "api-$FUNKWHALE_VERSION.zip" -d extracted
|
||||
mv extracted/api/* api/
|
||||
rm -rf extracted api-$FUNKWHALE_VERSION.zip
|
||||
```
|
||||
|
||||
2. Download the frontend
|
||||
|
||||
```{code-block} sh
|
||||
curl -L -o "front-$FUNKWHALE_VERSION.zip" "https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/$FUNKWHALE_VERSION/download?job=build_front"
|
||||
unzip "front-$FUNKWHALE_VERSION.zip" -d extracted
|
||||
mv extracted/front .
|
||||
curl -L -o "front-$FUNKWHALE_VERSION.zip" "https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/$FUNKWHALE_VERSION/download?job=build_front"
|
||||
unzip "front-$FUNKWHALE_VERSION.zip" -d extracted
|
||||
mv extracted/front .
|
||||
rm -rf extracted front-$FUNKWHALE_VERSION.zip
|
||||
```
|
||||
|
||||
|
@ -332,7 +332,7 @@ Funkwhale uses a reverse proxy to serve content to users. We use [Nginx](https:/
|
|||
# Log in to a root shell.
|
||||
|
||||
sudo su
|
||||
|
||||
|
||||
# Create an Nginx configuration using the Funkwhale template with details from your `.env` file.
|
||||
|
||||
set -a && source /srv/funkwhale/config/.env && set +a
|
||||
|
|
|
@ -161,7 +161,7 @@ Funkwhale uses a reverse proxy to serve content to users. We use [Nginx](https:/
|
|||
# Log in to a root shell.
|
||||
|
||||
sudo su
|
||||
|
||||
|
||||
# Create an Nginx configuration using the Funkwhale template with details from your `.env` file.
|
||||
|
||||
set -a && source /srv/funkwhale/.env && set +a
|
||||
|
|
|
@ -157,7 +157,7 @@ You need to initialize the postgres container on your {term}`destination server`
|
|||
CREATE USER funkwhale; \
|
||||
GRANT ALL PRIVILEGES ON DATABASE funkwhale TO funkwhale;" > init.sql # Create an init.sql file with the correct permissions
|
||||
|
||||
docker-compose run --rm postgres psql -U postgres -d postgres < "init.sql" # Import the init.sql file
|
||||
docker-compose run --rm postgres psql -U postgres -d postgres < "init.sql" # Import the init.sql file
|
||||
```
|
||||
|
||||
2. Import your database backup.
|
||||
|
|
|
@ -19,7 +19,7 @@ Use the `create_library` command to create new libraries for a given user.
|
|||
|
||||
* - `--privacy-level`
|
||||
- Enum (String)
|
||||
- The [privacy level](../../user_documentation/libraries/create_library.md) of the library
|
||||
- The [privacy level](../../user_documentation/libraries/create_library.md) of the library
|
||||
- `"me"` (default)
|
||||
- `"instance"`
|
||||
- `"everyone"`
|
||||
|
|
|
@ -856,7 +856,7 @@ RadioSessionCreate:
|
|||
description: |
|
||||
The type of radio to start. Depending of the type, the `related_object_id` field
|
||||
will need to be set to a non null value:
|
||||
|
||||
|
||||
- tag: tag `name`
|
||||
- artist: artist `id`
|
||||
- library: library `uuid`
|
||||
|
@ -870,9 +870,9 @@ RadioSessionCreate:
|
|||
- less-listened
|
||||
- actor-content
|
||||
- library
|
||||
|
||||
|
||||
related_object_id:
|
||||
type: string
|
||||
type: string
|
||||
default: null
|
||||
description:
|
||||
Value may be an integer depending of the `radio_type`.
|
||||
|
|
|
@ -78,7 +78,7 @@ Library:
|
|||
schema:
|
||||
type: string
|
||||
format: uuid
|
||||
|
||||
|
||||
ObjectId:
|
||||
name: id
|
||||
in: path
|
||||
|
@ -145,7 +145,7 @@ Related:
|
|||
type: integer
|
||||
format: int64
|
||||
|
||||
|
||||
|
||||
Scope:
|
||||
name: "scope"
|
||||
in: "query"
|
||||
|
@ -175,7 +175,7 @@ ContentCategory:
|
|||
in: "query"
|
||||
description: |
|
||||
Limits the results to those whose artist content type matches the query.
|
||||
|
||||
|
||||
required: false
|
||||
schema:
|
||||
type: "string"
|
||||
|
|
|
@ -15,4 +15,4 @@ authentication
|
|||
rate_limit
|
||||
subsonic
|
||||
|
||||
```
|
||||
```
|
||||
|
|
|
@ -147,4 +147,4 @@ You can check the full list of options by passing the `-h` flag:
|
|||
|
||||
```sh
|
||||
docker-compose -f dev.yml run --rm api pytest -h
|
||||
```
|
||||
```
|
||||
|
|
|
@ -210,7 +210,7 @@ In this example, **Alice** notifies **Bob** that she's undoing her follow.
|
|||
See [the `Audio` object reference](#audio) for details on the object's structure.
|
||||
```
|
||||
|
||||
When Funkwhale receives a `Create` activity with an [`Audio` object](#audio), it persists a local upload in the database. It then associates the upload to related library and track information. If no track matches the audio metadata, Funkwhale creates on using the `metadata` attribute in the object.
|
||||
When Funkwhale receives a `Create` activity with an [`Audio` object](#audio), it persists a local upload in the database. It then associates the upload to related library and track information. If no track matches the audio metadata, Funkwhale creates on using the `metadata` attribute in the object.
|
||||
|
||||
#### Checks
|
||||
|
||||
|
@ -363,7 +363,7 @@ In this example, **Bob** deletes three audio objects in a library and notifies t
|
|||
|
||||
### Artist
|
||||
|
||||
An `Artist` is a custom object used to store musical artist and podcast creator information.
|
||||
An `Artist` is a custom object used to store musical artist and podcast creator information.
|
||||
|
||||
#### Properties
|
||||
|
||||
|
@ -404,7 +404,7 @@ An `Artist` is a custom object used to store musical artist and podcast creator
|
|||
|
||||
### Album
|
||||
|
||||
An `Album` is a custom object used to store album and podcast series information.
|
||||
An `Album` is a custom object used to store album and podcast series information.
|
||||
|
||||
#### Properties
|
||||
|
||||
|
|
|
@ -100,16 +100,16 @@ Your `plugins` should include the following information:
|
|||
* - `name`
|
||||
- String
|
||||
- The name of your plugin, used in the `.env` file
|
||||
* - `label`
|
||||
* - `label`
|
||||
- String
|
||||
- The readable label that appears in the Funkwhale frontend
|
||||
* - `description`
|
||||
* - `description`
|
||||
- String
|
||||
- A meaningful description of your plugin and what it does
|
||||
* - `version`
|
||||
* - `version`
|
||||
- String
|
||||
- The version number of your plugin
|
||||
* - `user`
|
||||
* - `user`
|
||||
- Boolean
|
||||
- Whether the plugin is a **user-level** plugin or a **pod-level** plugin. See [scopes](#scopes) for more information
|
||||
* - `conf`
|
||||
|
@ -197,4 +197,4 @@ Here is an example of how the above plugin works:
|
|||
1. User "Harry" enables the plugin
|
||||
2. "Harry" changes the greeting to "You're a wizard"
|
||||
3. "Harry" visits the `/greeting` endpoint in their browser
|
||||
4. The browser returns the message "You're a wizard Harry"
|
||||
4. The browser returns the message "You're a wizard Harry"
|
||||
|
|
|
@ -17,7 +17,7 @@ Permissions
|
|||
Additional rights that an administrator/moderator can grant to a user. Permissions grant access to menus and actions in Funkwhale.
|
||||
|
||||
Available permissions:
|
||||
|
||||
|
||||
- {guilabel}`Moderation` – Grants access to the {guilabel}`Moderation` menu. Enables the user to moderate users, domains, and the allow-list.
|
||||
- {guilabel}`Manage library` – Grants access to the {guilabel}`Library` menu. Enables the user to make changes to library content. This includes deleting local objects and handling edit suggestions.
|
||||
- {guilabel}`Manage instance-level settings` – Grants access to the {guilabel}`Settings` menu. Enables the user to make changes to pod-level settings such as security settings and API behavior.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Handle edits
|
||||
|
||||
```{note}
|
||||
Users can edit content in their own libraries. Moderators don't need to approve these edits. The edits appear in the __Edits__ queue to give admins and moderators a full timeline of changes.
|
||||
Users can edit content in their own libraries. Moderators don't need to approve these edits. The edits appear in the __Edits__ queue to give admins and moderators a full timeline of changes.
|
||||
```
|
||||
|
||||
Users can suggest metadata edits on objects they can access. When a user suggests an edit, it's sent to the __Edits__ queue for review. Moderators and pod admins can accept or reject these edits.
|
||||
|
|
|
@ -35,7 +35,7 @@ To approve a sign-up request:
|
|||
2. Select the wrench icon ({fa}`wrench`) at the top of the sidebar to open the {guilabel}`Administration` menu.
|
||||
3. Select {guilabel}`Moderation`. The {guilabel}`Reports` page opens.
|
||||
4. Select {guilabel}`User Requests` at the top of the screen. A list of pending requests appears.
|
||||
5. Read through the details of the request.
|
||||
5. Read through the details of the request.
|
||||
6. Select {guilabel}`Approve` in the {guilabel}`Actions` section.
|
||||
|
||||
:::
|
||||
|
@ -47,7 +47,7 @@ To approve a sign-up request:
|
|||
2. Select the wrench icon ({fa}`wrench`) at the top of the screen to open the {guilabel}`Administration` menu.
|
||||
3. Select {guilabel}`Moderation`. The {guilabel}`Reports` page opens.
|
||||
4. Select {guilabel}`User Requests` at the top of the screen. A list of pending requests appears.
|
||||
5. Read through the details of the request.
|
||||
5. Read through the details of the request.
|
||||
6. Select {guilabel}`Approve` in the {guilabel}`Actions` section.
|
||||
|
||||
:::
|
||||
|
@ -68,7 +68,7 @@ To refuse a sign-up request:
|
|||
2. Select the wrench icon ({fa}`wrench`) at the top of the sidebar to open the {guilabel}`Administration` menu.
|
||||
3. Select {guilabel}`Moderation`. The {guilabel}`Reports` page opens.
|
||||
4. Select {guilabel}`User Requests` at the top of the screen. A list of pending requests appears.
|
||||
5. Read through the details of the request.
|
||||
5. Read through the details of the request.
|
||||
6. Select {guilabel}`Refuse` in the {guilabel}`Actions` section.
|
||||
|
||||
:::
|
||||
|
@ -80,7 +80,7 @@ To refuse a sign-up request:
|
|||
2. Select the wrench icon ({fa}`wrench`) at the top of the screen to open the {guilabel}`Administration` menu.
|
||||
3. Select {guilabel}`Moderation`. The {guilabel}`Reports` page opens.
|
||||
4. Select {guilabel}`User Requests` at the top of the screen. A list of pending requests appears.
|
||||
5. Read through the details of the request.
|
||||
5. Read through the details of the request.
|
||||
6. Select {guilabel}`Refuse` in the {guilabel}`Actions` section.
|
||||
|
||||
:::
|
||||
|
|
|
@ -18,7 +18,7 @@ You can add notes to __Unresolved__ and __Resolved__ reports. To add an internal
|
|||
:sync: desktop
|
||||
|
||||
1. Log in to your {term}`pod`.
|
||||
2. Select the wrench icon ({fa}`wrench`) at the top of the sidebar to open the {guilabel}`Administration` menu.
|
||||
2. Select the wrench icon ({fa}`wrench`) at the top of the sidebar to open the {guilabel}`Administration` menu.
|
||||
3. Select {guilabel}`Moderation`. The {guilabel}`Reports` page opens.
|
||||
4. [Search for the report](search_reports.md).
|
||||
5. {guilabel}`Write` your note in the {guilabel}`Internal notes` section. This input field supports Markdown syntax. You can {guilabel}`Preview` how the note will look to other users.
|
||||
|
@ -29,8 +29,8 @@ You can add notes to __Unresolved__ and __Resolved__ reports. To add an internal
|
|||
:::{tab-item} Mobile
|
||||
:sync: mobile
|
||||
|
||||
1. Log in to your {term}`pod`.
|
||||
2. Select the wrench icon ({fa}`wrench`) at the top of the screen to open the {guilabel}`Administration` menu.
|
||||
1. Log in to your {term}`pod`.
|
||||
2. Select the wrench icon ({fa}`wrench`) at the top of the screen to open the {guilabel}`Administration` menu.
|
||||
3. Select {guilabel}`Moderation`. The {guilabel}`Reports` page opens.
|
||||
4. [Search for the report](search_reports.md).
|
||||
5. {guilabel}`Write` your note in the {guilabel}`Internal notes` section. This input field supports Markdown syntax. You can {guilabel}`Preview` how the note will look to other users.
|
||||
|
@ -52,8 +52,8 @@ You can delete your own notes and the notes of other moderators. You can do this
|
|||
:::{tab-item} Desktop
|
||||
:sync: desktop
|
||||
|
||||
1. Log in to your {term}`pod`.
|
||||
2. Select the wrench icon ({fa}`wrench`) at the top of the sidebar to open the {guilabel}`Administration` menu.
|
||||
1. Log in to your {term}`pod`.
|
||||
2. Select the wrench icon ({fa}`wrench`) at the top of the sidebar to open the {guilabel}`Administration` menu.
|
||||
3. Select {guilabel}`Moderation`. The {guilabel}`Reports` page opens.
|
||||
4. [Search for the report](search_reports.md).
|
||||
5. Find the note you want to delete in the {guilabel}`Internal notes` section.
|
||||
|
@ -65,7 +65,7 @@ You can delete your own notes and the notes of other moderators. You can do this
|
|||
:sync: mobile
|
||||
|
||||
1. Log in to your {term}`pod`.
|
||||
2. Select the wrench icon ({fa}`wrench`) at the top of the screen to open the {guilabel}`Administration` menu.
|
||||
2. Select the wrench icon ({fa}`wrench`) at the top of the screen to open the {guilabel}`Administration` menu.
|
||||
3. Select {guilabel}`Moderation`. The {guilabel}`Reports` page opens.
|
||||
4. [Search for the report](search_reports.md).
|
||||
5. Find the note you want to delete in the {guilabel}`Internal notes` section.
|
||||
|
|
|
@ -66,7 +66,7 @@ To get the help of a specific namespace and list all its available commands, sim
|
|||
Authentication
|
||||
--------------
|
||||
|
||||
The CLI uses Oauth tokens to interact with the API.
|
||||
The CLI uses Oauth tokens to interact with the API.
|
||||
|
||||
To get started, you need to create an application for the CLI. To do this:
|
||||
|
||||
|
@ -76,7 +76,7 @@ To get started, you need to create an application for the CLI. To do this:
|
|||
4. Scroll down to the :guilabel:`Your applications` section.
|
||||
5. Select :guilabel:`Register a new application` to create a new application.
|
||||
6. Give your application an appropriate name (e.g. "Funkwhale CLI").
|
||||
7. Give your application the permissions you require.
|
||||
7. Give your application the permissions you require.
|
||||
8. Select :guilabel:`Create application`. A screen appears showing :guilabel:`Application details`.
|
||||
9. Copy the app's :guilabel:`Access token`.
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ This guide shows you how to tag your content with MusicBrainz Picard.
|
|||
- The album artist name (can be different than the track artist).
|
||||
- `Trent Reznor`
|
||||
* - `Genre`
|
||||
- A comma separated list of tags to associate with the track.
|
||||
- A comma separated list of tags to associate with the track.
|
||||
Other supported separators: `;` and `/`.
|
||||
- `Industrial, Metal`
|
||||
* - `Track number`
|
||||
|
@ -45,16 +45,16 @@ This guide shows you how to tag your content with MusicBrainz Picard.
|
|||
- The release date of the track or album.
|
||||
- `2019`
|
||||
* - `License`
|
||||
- The license associated with this work.
|
||||
- The license associated with this work.
|
||||
The first URL found is checked against our list of supported licenses.
|
||||
- `CC-BY 3.0: http://creativecommons.org/licenses/cc-by/3.0/`
|
||||
* - `Copyright`
|
||||
- The license associated with this work. The first URL found is checked against our list of supported licenses.
|
||||
- The license associated with this work. The first URL found is checked against our list of supported licenses.
|
||||
Used if no license found in the `License` tag.
|
||||
- `CC-BY 3.0: http://creativecommons.org/licenses/cc-by/3.0/`
|
||||
* - `Pictures`
|
||||
- The first embeded picture found is used as the album cover.
|
||||
-
|
||||
-
|
||||
* - `MusicBrainz Recording ID`
|
||||
- The MusicBrainz ID for the recording.
|
||||
- `99244237-850b-4a93-904d-57305bcadb4e`
|
||||
|
|
|
@ -69,7 +69,7 @@ That's it! You've added the contents from your queue to a playlist.
|
|||
You can add a track to a playlist from the track details page. To do this:
|
||||
|
||||
1. Go to the track details page of the track you want to add.
|
||||
2. Select the playlist icon ({fa}`list`) at the top of the screen. The {guilabel}`Manage playlists` screen appears.
|
||||
2. Select the playlist icon ({fa}`list`) at the top of the screen. The {guilabel}`Manage playlists` screen appears.
|
||||
3. Select {guilabel}`+ Add track` next to the playlist you want to add the track to.
|
||||
|
||||
That's it! The track is available in your playlist.
|
||||
|
@ -80,7 +80,7 @@ You can add tracks from any page with a track table. This includes artist pages,
|
|||
|
||||
1. Find your track in a track table.
|
||||
2. Select the kebab menu ({fa}`ellipsis-v`) next to the track to open the track options menu.
|
||||
3. Select {guilabel}`Add to playlist…`. The {guilabel}`Manage playlists` screen appears.
|
||||
3. Select {guilabel}`Add to playlist…`. The {guilabel}`Manage playlists` screen appears.
|
||||
4. Select {guilabel}`+ Add track` next to the playlist you want to add the track to.
|
||||
|
||||
Well done! You've added the track to your playlist.
|
||||
|
|
|
@ -22,7 +22,7 @@ To create a new radio:
|
|||
7. Select {guilabel}`Add filter` to add the filter to your radio.
|
||||
8. Configure your filter:
|
||||
1. Enable the {guilabel}`Exclude` switch to exclude results from your selection in the radio. Disable this switch to include results from your selection in the radio.
|
||||
2. Choose your __Artists__ or __Tags__ in the {guilabel}`Config` dropdown menu.
|
||||
2. Choose your __Artists__ or __Tags__ in the {guilabel}`Config` dropdown menu.
|
||||
3. The {guilabel}`Candidates` column shows the number of tracks included. Select the {guilabel}`{count} tracks matching filter` option to view some of these tracks.
|
||||
9. Check the tracks under the {guilabel}`{count} tracks matching combined filters` section.
|
||||
10. Select {guilabel}`Save` to save your radio.
|
||||
|
@ -42,7 +42,7 @@ To create a new radio:
|
|||
8. Select {guilabel}`Add filter` to add the filter to your radio.
|
||||
9. Configure your filter:
|
||||
1. Enable the {guilabel}`Exclude` switch to exclude results from your selection in the radio. Disable this switch to include results from your selection in the radio.
|
||||
2. Choose your __Artists__ or __Tags__ in the {guilabel}`Config` dropdown menu.
|
||||
2. Choose your __Artists__ or __Tags__ in the {guilabel}`Config` dropdown menu.
|
||||
3. The {guilabel}`Candidates` column shows the number of tracks included. Select the {guilabel}`{count} tracks matching filter` option to view some of these tracks.
|
||||
10. Check the tracks under the {guilabel}`{count} tracks matching combined filters` section.
|
||||
11. Select {guilabel}`Save` to save your radio.
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import polib
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
This scripts handles all the heavy-lifting of parsing CSS files from ``fomantic-ui-css`` and:
|
||||
|
||||
|
|
|
@ -9,4 +9,4 @@ sed -i '/@import url(/d' node_modules/fomantic-ui-css/components/site.css
|
|||
echo "Replacing hardcoded values by CSS vars…"
|
||||
scripts/fix-fomantic-css.py node_modules/fomantic-ui-css node_modules/fomantic-ui-css/tweaked
|
||||
echo 'Fixing jQuery import…'
|
||||
sed -i '1s/^/import jQuery from "jquery"\n/' `find node_modules/fomantic-ui-css/ -name '*.js'`
|
||||
sed -i '1s/^/import jQuery from "jquery"\n/' `find node_modules/fomantic-ui-css/ -name '*.js'`
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import collections
|
||||
import polib
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env bash -S -eux
|
||||
#!/usr/bin/env -S bash -eux
|
||||
|
||||
npm_binaries () {
|
||||
command -v yarn > /dev/null && yarn bin || npm bin
|
||||
|
|
|
@ -88,4 +88,4 @@
|
|||
style="fill:#3c3c3b" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 3.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.5 KiB |
|
@ -18,15 +18,15 @@
|
|||
sodipodi:docname="with-text.svg">
|
||||
<defs
|
||||
id="defs4594">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 10 KiB Po Szerokość: | Wysokość: | Rozmiar: 10 KiB |
|
@ -5,4 +5,4 @@
|
|||
font-size: 0.92857143em;
|
||||
font-weight: bold;
|
||||
text-transform: none;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,4 +6,4 @@
|
|||
|
||||
#addFilter {
|
||||
margin: 0 0 0 .85714286em;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.ui.cards > .card,
|
||||
.ui.card {
|
||||
color: var(--card-text-color);
|
||||
background: var(--card-background);
|
||||
background: var(--card-background);
|
||||
&:not(.flat) {
|
||||
box-shadow: var(--card-box-shadow);
|
||||
}
|
||||
|
|
|
@ -45,4 +45,4 @@ input + .help {
|
|||
|
||||
.ui.toggle.checkbox label::before {
|
||||
background-color: var(--input-selection-background);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.component-fs-browser {
|
||||
max-height: 400px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,4 +3,4 @@
|
|||
overflow-y: auto;
|
||||
background-color: rgba(25, 25, 25) !important;
|
||||
color: white !important;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,4 +13,4 @@
|
|||
background-color: var(--accent-color);
|
||||
border-color: var(--accent-color);
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
@keyframes sound {
|
||||
0% {
|
||||
opacity: .35;
|
||||
height: .1em;
|
||||
height: .1em;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
height: 1em;
|
||||
opacity: 1;
|
||||
height: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,4 +5,4 @@
|
|||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -235,7 +235,7 @@
|
|||
margin-left: 26px;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
|
||||
.podcast-episode-title {
|
||||
|
@ -248,4 +248,4 @@
|
|||
margin-inline-end: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,4 +28,4 @@
|
|||
width: 0px;
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,4 +10,4 @@ html {
|
|||
|
||||
input[type=search]::-webkit-search-cancel-button {
|
||||
appearance: none;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,5 +12,3 @@ body {
|
|||
text-decoration: var(--link-hover-text-decoration);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -115,4 +115,4 @@ span.diff.removed {
|
|||
> .ui.dimmer {
|
||||
color: var(--dimmer-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -191,11 +191,11 @@
|
|||
}
|
||||
.pod-description {
|
||||
flex-direction: column;
|
||||
display: flex;
|
||||
display: flex;
|
||||
p {
|
||||
margin: auto;
|
||||
padding: 1.2em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,4 +17,4 @@
|
|||
|
||||
.ui.multiple.search.dropdown>input.search {
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
.ui.card {
|
||||
min-height: 200px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.ui.segment.head {
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
{}
|
|
@ -1,3 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
outdated=$(pip list -o)
|
||||
echo -n "$outdated"
|
||||
return_code=$(echo -n "$outdated" | wc -l)
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import gitlab
|
||||
|
||||
TOKEN = "CHANGEME"
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import requests
|
||||
import os
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import sys
|
||||
|
|
Ładowanie…
Reference in New Issue