Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: announcements/ changelogs endpoint #42

Closed
oSumAtrIX opened this issue Jul 20, 2023 · 5 comments · Fixed by #91 or #102
Closed

feat: announcements/ changelogs endpoint #42

oSumAtrIX opened this issue Jul 20, 2023 · 5 comments · Fixed by #91 or #102
Assignees
Labels
Feature request Requesting a new feature that's not implemented yet

Comments

@oSumAtrIX
Copy link
Member

oSumAtrIX commented Jul 20, 2023

About

It is currently not possible to publish official announcements or changelogs.

Solution

Add the following endpoints:

  • /announcements
  • /announcements/latest
  • /changelogs
  • /changelogs/latest

Why

  • We "abuse" and depend on 3rd party services such as Discord, Reddit, or Twitter to make official announcements or changelogs.
  • A single trusted source can announce the first and foremost announcements. In the case of the API, the API delivers patches, for example. So if the API also delivers announcements, you can be sure of the origin
  • Other sources that host the API can make their own announcements and changelogs and would not have to rely on 3rd party services as well

Additional context

It may be beneficial to authenticate this endpoint. The reason to do so would be so that it isn't scraped. Imagine the following scenario:
Someone forks ReVanced Manager. Now that they use our API endpoint, we will deliver announcements and changelogs on their fork. The same applies to the ReVanced website, which could consume them. Ideally, we display them on the website, which would act as the primary source of information. If the endpoint were not authenticated, some other website would use it. Instead, the idea is to host your own API to deliver them. ReVanced Website and ReVanced Manager would have a variable in the source code that can be set at the built time to authenticate against the endpoint. Adding a captcha to the endpoints may also be beneficial to prevent scraping. Further attempts are not necessary to protect the endpoints.

@alexandreteles alexandreteles self-assigned this Jul 21, 2023
@alexandreteles alexandreteles added the Feature request Requesting a new feature that's not implemented yet label Jul 21, 2023
@alexandreteles alexandreteles moved this to 📋 Backlog in Development of ReVanced Jul 21, 2023
@oSumAtrIX oSumAtrIX removed their assignment Aug 2, 2023
@SodaWithoutSparkles
Copy link

So how do the client (for example, the announcement patch in YouTube ReVanced) access the api if it has a CAPTCHA?

If you set a variable at built time, wouldnt it also be scraped by decompiling the apk or just use sth like MITM + wireshark?

@oSumAtrIX
Copy link
Member Author

To display Captcha, a traditional WebView component would be displayed that would complete the captcha.
A captcha is a server sided, you can not complete it by reverse engineering the client. Everything is open source regardless, though, we aren't hiding anything.

@Ushie

This comment was marked as off-topic.

@SodaWithoutSparkles
Copy link

SodaWithoutSparkles commented Aug 7, 2023

Why would there be an announcement patch for YouTube?

ReVanced/revanced-patches-template#1047

So Osu are saying that the client would have a CAPTCHA window once a day?

why dont just rate-limit the client IP instead?

@oSumAtrIX oSumAtrIX changed the title feat: announcements endpoint feat: announcements/ changelogs endpoint Aug 9, 2023
@oSumAtrIX
Copy link
Member Author

oSumAtrIX commented Aug 9, 2023

@alexandreteles If possible, a specification could be released early for clients to mock the endpoints until it is available. Currently open: ReVanced/revanced-website#165

@oSumAtrIX oSumAtrIX linked a pull request Sep 29, 2023 that will close this issue
4 tasks
@alexandreteles alexandreteles linked a pull request Oct 11, 2023 that will close this issue
@github-project-automation github-project-automation bot moved this from 📋 Backlog to ✅ Done in Development of ReVanced Oct 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature request Requesting a new feature that's not implemented yet
Projects
Status: Done
4 participants