Code Monkey home page Code Monkey logo

fediseergui's Introduction

Frontend for Fediseer

Running

  • edit environment.ts to your liking
    • especially change the maintainer, please
  • yarn install
    • to install dependencies
  • yarn build
    • to build the app
  • copy contents of dist/FediseerGUI/browser to your favorite webserver
  • configure your webserver to route all pages to index.html

You can build the app using a single docker command: docker run --rm -v $(pwd):/app -w /app -u $(id -u):$(id -g) node:18 bash -c 'yarn install && yarn build'

Running with server side rendering

  • edit environment.ts to your liking
    • especially change the maintainer, please
  • yarn install
    • to install dependencies
  • yarn build:ssr
    • to build the app, both client and server
  • copy contents of dist/FediseerGUI to your server
  • node dist/FediseerGUI/server/main.js
    • runs the node express server (replace with real path to your dir)
  • configure your reverse proxy to route to localhost:4000

Running using Docker

A ready-to-use docker image is available as ghcr.io/fediseer/fediseer-gui.

Configuration is done using environment variables.

Environment variable Description Default value
FEDISEER_API_URL The URL of the Fediseer api. https://fediseer.com/api
FEDISEER_API_VERSION The api version of the Fediseer api. v1
FEDISEER_APP_NAME The internal app name used. FediseerGUI
FEDISEER_APP_MAINTAINER The name of the maintainer in the format of @[username]@[instance]. This variable cannot be empty. none
FEDISEER_DEFAULT_CENSURE_LIST_FILTER_INSTANCES The default instances to use in the censure list filters. List them as a comma separated values, for example lemmings.world,lemmy.dbzer0.com. The special value __all__ can be used to mean all guaranteed instances __all__
FEDISEER_SOURCE_CODE_LINK The URL to the source code repository. You may want to set it to your fork URL if you're not using my version. https://github.com/Fediseer/FediseerGUI
FEDISEER_APP_VERSION The current version of the Fediseer GUI. gets the default from environment.ts
FEDISEER_ENABLE_SSR Set to any value to enable server-side rendering none
FEDISEER_DONATE_LINK The link to the donation page, can be anything https://liberapay.com/Fediseer/

The app is running on port 80 inside the container.

fediseergui's People

Contributors

andreluis034 avatar noahimesaka1873 avatar rikudousage avatar tealk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fediseergui's Issues

subpages should have links to the glossary

Some subpages don't have a link to the glossary yet and maybe we should adjust that

as an example, I noticed the following when translating:

"app.guarantee_restricted.info": "You can do this only if your instance is guaranteed by some other instance.",

[Feature] Synchronization settings and mapping

Introduction

Synchronization feature is a very good tool for many instances. But it has some flaws.

For example, not every instance blocks any other which is considered "bad", but still wants to use benefits of community-driven moderation lists. Some just limits them leaving their users a freedom of information and ability to still manually follow users from the "bad" instance.

So here's an idea: list mapping.

Examples

So for example you can set your own sync profile by selecting sanctions and strategies for fediseer list. For example:

Sync settings 1 (default):

Fediseer list instance sanctions strategy
Censured suspend overwrite
Hesitated limit overwrite
Suspicious no sync
Some other list no sync

Sync setting 2 (custom)

Fediseer list instance sanctions strategy
Censured limit merge / append only
Hesitated no sync
Suspicious no sync
Some other list no sync

Sync setting 3 (custom)

Fediseer list instance sanctions strategy
Censured limit merge with deletion
Hesitated reject media overwrite
Suspicious no sync
Some other list limit overwrite

Explanation

Strategies

  • overwrite - completely synchronizes all data with fediseer by overwriting existing list entries on the instance
  • merge / append only - adds entries which do not currently exist in the list on the instance
  • merge with deletion - adds entries which do not currently exist in the list on the instance, but also removed entries which were previously synchronized from fediseed, but removed after that
  • some other strategies with another direction priorities for example

Instance sanctions

  • Limit - removed content from such instances from public timelines, but allows users to follow users from limited instance
  • Suspend - completely disables any interaction with users from suspended instance
  • Reject media - do not sync media from remote instance
  • Other domain block options which are currently present

[Enhancement] Add instance search to GUI

It would be a good feature to enable admins/moderators to search for an instance in the GUI. It will come in useful when looking for receipts while vetting a server for potential blocking.

[Feature] Sync from Mastodon -> Fediseer: mapping of limit vs suspend

It would be great if in the "Synchronization from Mastodon to Fediseer" part of synchronization it was possible to choose the mapping of Mastodon limits vs suspends onto, for example, hesitations vs censures, much like it is possible to do in the other direction. My very long Mastodon list has a mix of both and I don't want to import them all as censures.

Add ability to use pm_proxy

The user should be able to select if they want to use a PM proxy when claiming an instance, for those software which I haven't developed direct messaging as @[email protected]

The claim instance allows to pass the pm_proxy key as either "NONE" or "MASTODON" currently, but in the future more might be added.

The PATCH on /api/v1/whitelist also allows setting a pm_proxy for the whole instance. This will be stored for the whole instance and will be used for future PMs to all its admins.

Add ability to exclude certain instances from being blacklisted by the synchronization

Currently in the blacklist syncronization when I add endorsed instances in there to pull blocks from, there can be a community that is blocked that I dont want blocked (e.g. due to rule change in the blocked instance but not everyone has updated their censures accordingly yet)

Adding an input field where you can put domains to ignore for the blacklist would prevent that

Import block-list from Mastodon

Please add the possibility to import block-lists that have been exported from Mastodon.

The exported csv contains the following:

domain,severity,reject_media,reject_reports,public_comment,obfuscate

example:
domain.tld,suspend,false,false,"racism, discrimination, lolicon",true

I suppose we'll only need domain, severity and public_comment for Fediseer.
severity is either suspend (censor) or silence (treat as hesitated?)
public_comment is in the format "free string", and could be treated as "reason 1, reason 2, reason 3"

(referring to https://matrix.to/#/!vzuoKDBMbcFToIJwxv:discuss.online/$E4paE0mlzpYm1sKfeuG0Gy2b1ysIqV22PJ2Rpl-c4R0?via=matrix.org&via=lemmy.world&via=aria-net.org)

Show number of guarantees

On the one hand you would know how many you can still spend, on the other hand it would prevent confusion because it is not easily apparent that there may only be 20 pieces.

image

more filters for lists

would it be possible to add filters for the following lists, so that you can search for e.g. a reason?

it would also be cool if you could do this by post so that you can send a filter

instances/censured
instances/hesitated

Implement rebuttals

Fediseer allows admins of censures/hesitates instances to issue a rebuttals to their own defense.

image

Add ability to revoke own guarantee

An instance which solicits a guarantee may receive one from an unknown/potentially untrustworthy instance. Ability to revoke may be important, especially in these early adoption days, to avoid larger issues in the future.

Revoking your own guarantee is possible via the API but not yet in the GUI, as far as I can tell.

Method explained here:

Fediseer/fediseer#24 (comment)

Thanks!

API error when claiming

I'm trying to claim lazysoci.al but I get "The api returned this error: Internal Server Error "

Feature - "Upgrade" and "Downgrade" instances from Hesitations and Censures

Would be nice to have a "one click" option to move an instance from your hesitations to your censures list and the other way around.

Preferably also the same with an instance that is in your guarantees. Maybe add a drop-down list to choose the list the instance should be in so we can easily revoke the guarantee on an instance when it becomes a problem.

Allow resetting API key directly on the UI

The password reset endpoint supports returning the new API key directly to the user (as opposed to PMing it to the admin), by setting "return_new_key": true on the PATCH.

This is used when the admin does not receive the PM for any reason, or if they need to reset it without getting the password stored in their DB

rebuttal overview

Hi, isn't an overview page missing for the rebuttal option?
You can send some from your instance but where can you find them?

Mastodon Synchronization does not seem to use pagination

When I got to the sync page to bring the censures into my Mastodon instance, it seems only the first page of blocks is processed, meaning that most blocks aren't even shown as missing on Fediseer and that Fediseer is unable to see the blocks it creates.

In the network panel it also seems like a single request is made, which ends up only returning the first results.

Add action log filtering

Fediseer API allows one to filter by source instace, target instance, report type and report activity. Would be nice to be able to do that in the gui as well

BUG - "Treat hesitations as censures" doesn't use tag filter

If I tag to only follow for example "csam" and "spam" this will be ignored for hesitations. Instead the GUI will add all the hesitations.

Example:

  • Feddit.uk and Lemmy.one are currently in my censures as "inactive admins".
  • For Filter by reasons I fill: "csam"

image

As you see they are both added in the Preview.

[Feature] language selection

I think it would be quite good if there was a language selection.

On the one hand, you are now forced to use the browser language.
On the other hand, you can find translation errors.

Add a main instance discovery tool, similar to pangora.social

Looking at https://pangora.social/join made my creative juices flow. I am thinking the following

Once Fediseer/fediseer#34 is implemented, create new subdomain (maybe even re-use the pangora source), or a tab on the fediseer: "Join Fediverse"

The list will be populated by our instance list.

  1. The first choice: Type: Microblogging / Threadiverse / Pictureblogging (what is the verb for instagram-styl?e) / Videos. With popup explanation of each

  2. Second choice: Software: Have a small popup screenshot description of the software next to each choice

    • Microblogging: Mastodon, Pleroma, Firefish etc.
    • Threadiverse: Lemmy, Kbin
    • etc
  3. Third choice: Tag cloud: We provide a clickable tag cloud on the top (or perhaps a better way to display tags). On the bottom, we provide the list of guaranteed instances which have all the selected tags assigned, ordered by descending order of endorsements. When a user selects a new tag, the instance list below is re-filtered. Eventually the user should pick one of the instances below, which will direct them to that instance's frontpage.

Add some caching

Currently there's almost no caching of data and stuff is needlessly fetched over and over.

Show some short-lived popup when a new solicitation is up

Just an idea to help people notice there's instances asking for a guarantee.

Now and then poll the solicitations in the background. When a new one is found, put a short-lived popup that asks the user to take a look at new solicitaitons

The popup should not appear if the user has maxed out their guarantees (so, dependent on me adding Fediseer/fediseer#31 first. The popup should not appear if you have the instance hesitated/censured.

Perhaps to filter it a bit more, have the popup only appear if the solicitating instance is not censured/hesitated by any of your instances's endorsements either.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.