From dec990c24c6b3c79821df5a2bb34b90ef33b6880 Mon Sep 17 00:00:00 2001 From: rebel onion <87634197+rebelonion@users.noreply.github.com> Date: Thu, 23 May 2024 13:47:28 -0500 Subject: [PATCH 01/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f911bcff..87574a9b 100644 --- a/README.md +++ b/README.md @@ -38,4 +38,4 @@ You can come hang out with our awesome community, request new features, and repo ## LICENSE 📜 -Dantotsu is licensed under the [GNU General Public License v3.0](LICENSE.md) +Dantotsu is licensed under the Unabandon Public License (UPL). More info can be found [here.](LICENSE.md) From 4e76e8e6e785c1eb091bc1132e59398639ccb271 Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Wed, 30 Oct 2024 21:47:53 +0900 Subject: [PATCH 02/10] chore: update SubtitleDownloader.kt (#509) reponse -> response --- app/src/main/java/ani/dantotsu/media/SubtitleDownloader.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/media/SubtitleDownloader.kt b/app/src/main/java/ani/dantotsu/media/SubtitleDownloader.kt index 9d834a0c..5c66f6a2 100644 --- a/app/src/main/java/ani/dantotsu/media/SubtitleDownloader.kt +++ b/app/src/main/java/ani/dantotsu/media/SubtitleDownloader.kt @@ -72,14 +72,14 @@ class SubtitleDownloader { val client = Injekt.get().client val request = Request.Builder().url(url).build() - val reponse = client.newCall(request).execute() + val response = client.newCall(request).execute() - if (!reponse.isSuccessful) { + if (!response.isSuccessful) { snackString("Failed to download subtitle") return } - reponse.body.byteStream().use { input -> + response.body.byteStream().use { input -> subtitleFile.openOutputStream(context, false).use { output -> if (output == null) throw Exception("Could not open output stream") input.copyTo(output) From b2d7af85c0aa2d4e69f430808b161b38b7375704 Mon Sep 17 00:00:00 2001 From: Itsmechinmoy <167056923+itsmechinmoy@users.noreply.github.com> Date: Sat, 9 Nov 2024 20:34:43 +0530 Subject: [PATCH 03/10] [skip ci] Nothing (#515) --- .github/ISSUE_TEMPLATE/congif.yml | 9 ++ .github/ISSUE_TEMPLATE/question.yml | 35 +++++++ .github/ISSUE_TEMPLATE/report_issue.yml | 101 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/request_feature.yml | 54 +++++++++++ .github/workflows/bug_greetings.yml | 84 +++++++++++++++++ .github/workflows/feature_greetings.yml | 86 ++++++++++++++++++ .github/workflows/pr_greetings.yml | 80 ++++++++++++++++ 7 files changed, 449 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/congif.yml create mode 100644 .github/ISSUE_TEMPLATE/question.yml create mode 100644 .github/ISSUE_TEMPLATE/report_issue.yml create mode 100644 .github/ISSUE_TEMPLATE/request_feature.yml create mode 100644 .github/workflows/bug_greetings.yml create mode 100644 .github/workflows/feature_greetings.yml create mode 100644 .github/workflows/pr_greetings.yml diff --git a/.github/ISSUE_TEMPLATE/congif.yml b/.github/ISSUE_TEMPLATE/congif.yml new file mode 100644 index 00000000..f2ec835c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/congif.yml @@ -0,0 +1,9 @@ +blank_issues_enabled: false +contact_links: + - name: 🧑‍💻 Dantotsu Help on Discord + url: https://discord.com/invite/4HPZ5nAWwM + about: Get support, ask questions, and join the community discussions. + + - name: 📱 Dantotsu Help on Telegram + url: https://t.me/dantotsuapp + about: Connect with the community, ask questions, and get help directly on Telegram. diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml new file mode 100644 index 00000000..331c0b7e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.yml @@ -0,0 +1,35 @@ +name: ❓ Question +description: Submit a question or query related to Dantotsu +labels: [question] +body: + - type: textarea + id: question-details + attributes: + label: Question Details + description: Provide a detailed explanation of your question or query. + placeholder: | + Example: + "How do I customize the settings in Dartotsu to optimize performance?" + validations: + required: true + + - type: input + id: related-features + attributes: + label: Related Features (if applicable) + description: Mention any specific feature or section of Dantotsu related to your question. + placeholder: | + Example: "Settings > Performance" + + - type: checkboxes + id: submission-checklist + attributes: + label: Submission Checklist + description: Review the following items before submitting your question. + options: + - label: I have searched existing issues to see if this question has already been answered. + required: true + - label: I have provided a clear and concise question title. + required: true + - label: I have provided all relevant details to understand my question fully. + required: true diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml new file mode 100644 index 00000000..7e202dc3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -0,0 +1,101 @@ +name: 🐛 Issue Report +description: Report a bug or problem in Dantotsu +labels: [bug] +body: + - type: textarea + id: steps-to-reproduce + attributes: + label: Steps to Reproduce + description: Outline the steps needed to trigger the issue. + placeholder: | + Example: + 1. Navigate to the home screen. + 2. Click on "Start." + 3. Observe the error message. + validations: + required: true + + - type: textarea + id: expected-outcome + attributes: + label: Expected Outcome + description: Describe what you expected to happen. + placeholder: | + Example: + "The application should have successfully loaded the dashboard..." + validations: + required: true + + - type: textarea + id: actual-outcome + attributes: + label: Actual Outcome + description: Detail what actually occurred when following the steps. + placeholder: | + Example: + "The app crashed and displayed an error message instead..." + validations: + required: true + + - type: textarea + id: error-logs + attributes: + label: Error Logs (if applicable) + description: | + If the issue involves crashes, please attach relevant logs. Access them via **Settings → About → Log to file → Share**. + placeholder: | + Paste the logs here or upload as an attachment. + + - type: input + id: dartotsu-version + attributes: + label: Dartotsu Version + description: Specify the version of Dartotsu in which the issue occurred. + placeholder: | + Example: "1.2.3" + validations: + required: true + + - type: input + id: os-version + attributes: + label: Operating System Version + description: Mention the OS version you are using. + placeholder: | + Example: "Android 12" + validations: + required: true + + - type: input + id: device-info + attributes: + label: Device Information + description: Provide your device name and model. + placeholder: | + Example: "Samsung Galaxy S21" + validations: + required: true + + - type: textarea + id: additional-information + attributes: + label: Additional Information + placeholder: | + Include any other relevant details or attachments that may help diagnose the issue. + + - type: checkboxes + id: submission-checklist + attributes: + label: Submission Checklist + description: Ensure you've reviewed these items before submitting your report. + options: + - label: I have searched existing issues to confirm this is not a duplicate. + required: true + - label: I have provided a clear and descriptive title. + required: true + - label: I am using the **[latest](https://github.com/rebelonion/Dantotsu/latest)** version of Dantotsu. If not, I have provided a reason for not updating. + required: true + - label: I have updated all relevant extensions or dependencies. + required: true + - label: I have filled out all the requested information accurately. + required: true diff --git a/.github/ISSUE_TEMPLATE/request_feature.yml b/.github/ISSUE_TEMPLATE/request_feature.yml new file mode 100644 index 00000000..110357fd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/request_feature.yml @@ -0,0 +1,54 @@ +name: 🚀 Feature Request +description: Propose a new feature to enhance Dantotsu +labels: [enhancement] +body: + - type: textarea + id: feature-summary + attributes: + label: Feature Summary + description: Provide a concise summary of the feature you'd like to see. + placeholder: | + Example: + "Add support for dark mode..." + validations: + required: true + + - type: textarea + id: detailed-description + attributes: + label: Detailed Description + description: Elaborate on how this feature should function and its potential impact. + placeholder: | + Example: + "The dark mode should automatically activate based on system settings..." + value: | + ### Current Behavior + - Describe the current functionality or lack thereof. + + ### Proposed Solution + - Detail how the feature should work and any potential benefits. + + ### Considerations + - Mention any potential challenges or alternatives. + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Provide any other information, relevant screenshots, or references. + placeholder: "Include links to relevant resources, external tools, or related issues." + + - type: checkboxes + id: checklist + attributes: + label: Submission Checklist + description: Ensure you've completed these before submitting. + options: + - label: I have searched the existing issues and confirm that this feature has not been requested before. + required: true + - label: I have provided a clear and descriptive title. + required: true + - label: I am using the **[latest](https://github.com/rebelonion/Dantotsu/releases/latest)** version of Dantotsu. If not, I have provided a reason for using an older version. + required: true + - label: I understand that not all feature requests will be accepted, and if declined, I won't resubmit the same request. + required: true diff --git a/.github/workflows/bug_greetings.yml b/.github/workflows/bug_greetings.yml new file mode 100644 index 00000000..6701c723 --- /dev/null +++ b/.github/workflows/bug_greetings.yml @@ -0,0 +1,84 @@ +name: Bug Report Greeting +on: + issues: + types: [opened] +jobs: + greeting: + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + - name: Check if the issue is labeled as a Bug Report + id: check_bug_label + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + ISSUE_NUMBER=$(jq -r '.issue.number' "$GITHUB_EVENT_PATH") + LABELS=$(gh issue view $ISSUE_NUMBER --json labels --jq '.labels[].name') + + if echo "$LABELS" | grep -q 'bug'; then + echo "This issue is labeled as a bug report. Checking if the issue creator is the repository owner." + echo "skip_label_check=false" >> $GITHUB_ENV + else + echo "This issue is not labeled as a bug report. Skipping greeting message." + echo "skip_label_check=true" >> $GITHUB_ENV + fi + - name: Check if the issue creator is the repo owner + if: env.skip_label_check == 'false' + id: check_owner + run: | + ISSUE_AUTHOR=$(jq -r '.issue.user.login' "$GITHUB_EVENT_PATH") + REPO_OWNER=$(jq -r '.repository.owner.login' "$GITHUB_EVENT_PATH") + if [ "$ISSUE_AUTHOR" = "$REPO_OWNER" ]; then + echo "The issue creator is the repository owner. Skipping greeting message." + echo "skip=true" >> $GITHUB_ENV + else + echo "The issue creator is not the repository owner. Checking for previous bug reports..." + echo "skip=false" >> $GITHUB_ENV + fi + - name: Check if the user has submitted a bug report before + if: env.skip == 'false' + id: check_first_bug_report + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + ISSUE_AUTHOR=$(jq -r '.issue.user.login' "$GITHUB_EVENT_PATH") + ISSUE_NUMBER=$(jq -r '.issue.number' "$GITHUB_EVENT_PATH") + + # Get all issues (both open and closed) by the author except the current one + PREVIOUS_REPORTS=$(gh issue list --author "$ISSUE_AUTHOR" --label "Bug" --state all --json number --jq '. | map(select(.number != '$ISSUE_NUMBER')) | length') + echo "User $ISSUE_AUTHOR has submitted $PREVIOUS_REPORTS bug report(s) previously" + + if [ "$PREVIOUS_REPORTS" -eq 0 ]; then + echo "This is the user's first bug report. Sending greeting message." + echo "skip_first_report=false" >> $GITHUB_ENV + else + echo "User has previous bug reports. Skipping greeting message." + echo "skip_first_report=true" >> $GITHUB_ENV + fi + - name: Send Greeting Message + if: env.skip_label_check == 'false' && env.skip != 'true' && env.skip_first_report != 'true' + uses: actions/github-script@v6 + with: + script: | + const issueNumber = context.payload.issue.number; + const message = ` + **🛠️ Thank you for reporting a bug!** + Your issue has been successfully submitted and is now awaiting review. We appreciate your help in making Dantotsu better. + **🔍 What Happens Next** + - Our team will investigate the issue and provide updates as soon as possible. + - You may be asked for additional details or clarification if needed. + - Once resolved, we'll notify you of the fix or provide a workaround. + **👥 Connect with Us** + - **[Discord](https://discord.com/invite/4HPZ5nAWwM)**: Engage with our community and ask questions. + - **[Telegram](https://t.me/dantotsuapp)**: Reach out for real-time discussions and updates. + We're working hard to resolve the issue and appreciate your patience! + `; + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + body: message + }); diff --git a/.github/workflows/feature_greetings.yml b/.github/workflows/feature_greetings.yml new file mode 100644 index 00000000..867a00f6 --- /dev/null +++ b/.github/workflows/feature_greetings.yml @@ -0,0 +1,86 @@ +name: Feature Request Greeting + +on: + issues: + types: [opened] + +jobs: + greeting: + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Check if the issue is labeled as a Feature Request + id: check_feature_label + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + ISSUE_NUMBER=$(jq -r '.issue.number' "$GITHUB_EVENT_PATH") + LABELS=$(gh issue view $ISSUE_NUMBER --json labels --jq '.labels[].name') + + if echo "$LABELS" | grep -q 'enhancement'; then + echo "This issue is labeled as a feature request. Checking if the issue creator is the repository owner." + echo "skip_label_check=false" >> $GITHUB_ENV + else + echo "This issue is not labeled as a feature request. Skipping greeting message." + echo "skip_label_check=true" >> $GITHUB_ENV + fi + + - name: Check if the user has submitted a feature request before + if: env.skip_label_check == 'false' + id: check_first_request + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + ISSUE_AUTHOR=$(jq -r '.issue.user.login' "$GITHUB_EVENT_PATH") + REPO_OWNER=$(jq -r '.repository.owner.login' "$GITHUB_EVENT_PATH") + ISSUE_NUMBER=$(jq -r '.issue.number' "$GITHUB_EVENT_PATH") + + if [ "$ISSUE_AUTHOR" = "$REPO_OWNER" ]; then + echo "The issue creator is the repository owner. Skipping greeting message." + echo "skip_first_request=true" >> $GITHUB_ENV + else + echo "Checking for previous feature requests..." + # Get all issues (both open and closed) by the author except the current one + PREVIOUS_REQUESTS=$(gh issue list --author "$ISSUE_AUTHOR" --label "New Feature" --state all --json number --jq '. | map(select(.number != '$ISSUE_NUMBER')) | length') + echo "User $ISSUE_AUTHOR has submitted $PREVIOUS_REQUESTS feature request(s) previously" + + if [ "$PREVIOUS_REQUESTS" -eq 0 ]; then + echo "This is the user's first feature request. Sending greeting message." + echo "skip_first_request=false" >> $GITHUB_ENV + else + echo "User has previous feature requests. Skipping greeting message." + echo "skip_first_request=true" >> $GITHUB_ENV + fi + fi + + - name: Send Greeting Message + if: env.skip_label_check == 'false' && env.skip_first_request == 'false' + uses: actions/github-script@v6 + with: + script: | + const issueNumber = context.payload.issue.number; + const message = ` + **💡 Thank you for your feature request!** + Your request has been successfully submitted and is now under consideration. We value your input in shaping the future of Dantotsu. + + **📈 What to Expect Next** + - Our team will review your request and assess its feasibility. + - We may reach out for additional details or clarification. + - Updates on the request will be provided, and it may be scheduled for future development. + + **👥 Stay Connected** + - **[Discord](https://discord.com/invite/4HPZ5nAWwM)**: Join our community to discuss ideas and stay updated. + - **[Telegram](https://t.me/dantotsuapp)**: Connect with us directly for real-time updates. + + We appreciate your suggestion and look forward to potentially implementing it! + `; + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + body: message + }); diff --git a/.github/workflows/pr_greetings.yml b/.github/workflows/pr_greetings.yml new file mode 100644 index 00000000..c6891c79 --- /dev/null +++ b/.github/workflows/pr_greetings.yml @@ -0,0 +1,80 @@ +name: PR Greetings + +on: + pull_request: + types: [opened] + pull_request_target: + types: [opened] + +jobs: + greeting: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Check if the PR creator is the repo owner or Weblate + id: check_owner + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + PR_AUTHOR=$(jq -r '.pull_request.user.login' "$GITHUB_EVENT_PATH") + REPO_OWNER=$(jq -r '.repository.owner.login' "$GITHUB_EVENT_PATH") + + if [ "$PR_AUTHOR" = "$REPO_OWNER" ] || [ "$PR_AUTHOR" = "weblate" ]; then + echo "The PR creator is the repository owner or Weblate. Skipping greeting message." + echo "skip=true" >> $GITHUB_ENV + else + echo "The PR creator is not the repository owner or Weblate. Checking for previous PRs..." + + # Check for both open and closed pull requests by the author + OPEN_PRS=$(gh pr list --author "$PR_AUTHOR" --state open --json number --jq '. | length') + CLOSED_PRS=$(gh pr list --author "$PR_AUTHOR" --state closed --json number --jq '. | length') + TOTAL_PRS=$((OPEN_PRS + CLOSED_PRS)) + + echo "User $PR_AUTHOR has created $TOTAL_PRS pull request(s) in total" + echo "Open PRs: $OPEN_PRS" + echo "Closed PRs: $CLOSED_PRS" + + if [ "$TOTAL_PRS" -eq 1 ]; then + echo "This is the user's first pull request. Sending greeting message." + echo "skip=false" >> $GITHUB_ENV + else + echo "User has previous pull requests. Skipping greeting message." + echo "skip=true" >> $GITHUB_ENV + fi + fi + + - name: Send Greeting Message + if: env.skip != 'true' + uses: actions/github-script@v6 + with: + script: | + const prNumber = context.payload.pull_request.number; + const message = ` + **🎉 Thank you for your contribution!** + + Your Pull Request has been successfully submitted and is now awaiting review. We truly appreciate your efforts to improve Dantotsu. + + **👥 Connect with the Community** + + While you're here, why not join our communities to stay engaged? + - **[Discord](https://discord.com/invite/4HPZ5nAWwM)**: Chat with fellow developers, ask questions, and get the latest updates. + - **[Telegram](https://t.me/dantotsuapp)**: Connect directly with us for real-time discussions and updates. + + **📋 What to Expect Next** + - Our team will review your pull request as soon as possible. + - You'll receive notifications if further information or changes are needed. + - Once approved, your changes will be merged into the main project. + + We're excited to collaborate with you. Stay tuned for updates! + `; + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + body: message + }); From 441094ca172f848c6cb4b543bfbdd7b9bc27a6ea Mon Sep 17 00:00:00 2001 From: Itsmechinmoy <167056923+itsmechinmoy@users.noreply.github.com> Date: Sat, 9 Nov 2024 20:56:28 +0530 Subject: [PATCH 04/10] [skip ci] Rename congif.yml to config.yml (#516) --- .github/ISSUE_TEMPLATE/{congif.yml => config.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/ISSUE_TEMPLATE/{congif.yml => config.yml} (100%) diff --git a/.github/ISSUE_TEMPLATE/congif.yml b/.github/ISSUE_TEMPLATE/config.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/congif.yml rename to .github/ISSUE_TEMPLATE/config.yml From 0057363f4dafb6822ee6dc473d418b80c15e870e Mon Sep 17 00:00:00 2001 From: rebel onion <87634197+rebelonion@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:09:49 -0600 Subject: [PATCH 05/10] Update beta.yml --- .github/workflows/beta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 558fb658..629f508c 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -21,7 +21,7 @@ jobs: - name: Download last SHA artifact - uses: dawidd6/action-download-artifact@v3 + uses: dawidd6/action-download-artifact@v6 with: workflow: beta.yml name: last-sha From f0a8d9bfd4b0abd51221b667a6ab832ebe826396 Mon Sep 17 00:00:00 2001 From: Itsmechinmoy <167056923+itsmechinmoy@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:50:18 +0530 Subject: [PATCH 06/10] [skip ci] Automatically Close Issues Related to Extensions and Repo Availability (#546) --- .../workflows/extension-issue-handling.yml | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 .github/workflows/extension-issue-handling.yml diff --git a/.github/workflows/extension-issue-handling.yml b/.github/workflows/extension-issue-handling.yml new file mode 100644 index 00000000..2f043dc0 --- /dev/null +++ b/.github/workflows/extension-issue-handling.yml @@ -0,0 +1,112 @@ +name: Extension Issue Handling +on: + issues: + types: [opened, labeled] + +jobs: + handle-extension-issues: + runs-on: ubuntu-latest + steps: + - name: Check Issue Content + id: check-issue + env: + ISSUE_TITLE: ${{ github.event.issue.title }} + ISSUE_BODY: ${{ github.event.issue.body }} + run: | + # Regex patterns for extension-related issues + EXTENSION_REGEX_PATTERNS=( + # Extension not working (more flexible match) + ".*(\w+)\s*(extension)?\s*(not working|doesn't work|does not work|cant work|can't work).*" + + # No extension available + ".*(no|can't find|cannot find|missing).*extension.*" + + # No repo or repositories available + ".*(no|can't find|cannot find|missing).*repo(s)?\s*(available|found|accessible).*" + + # Specific server/stream issues + ".*(no streams|server).*(available|working).*" + + # Variants of extension problems + ".*{.*}.*not working.*" + ".*{.*}.*extension.*(issue|problem).*" + ) + + # Convert to lowercase for case-insensitive matching + LOWER_TITLE=$(echo "$ISSUE_TITLE" | tr '[:upper:]' '[:lower:]') + LOWER_BODY=$(echo "$ISSUE_BODY" | tr '[:upper:]' '[:lower:]') + + # Flag to track issue type + IS_EXTENSION_ISSUE=false + IS_NO_EXTENSION_ISSUE=false + + # Check title and body against regex patterns + for pattern in "${EXTENSION_REGEX_PATTERNS[@]}"; do + if [[ "$LOWER_TITLE" =~ $pattern ]] || [[ "$LOWER_BODY" =~ $pattern ]]; then + IS_EXTENSION_ISSUE=true + + # Special check for no extensions available + if [[ "$LOWER_TITLE" =~ "no extension" ]] || [[ "$LOWER_TITLE" =~ "can't find extension" ]]; then + IS_NO_EXTENSION_ISSUE=true + fi + + break + fi + done + + # Explicitly output boolean values + if [ "$IS_EXTENSION_ISSUE" = true ]; then + echo "is_extension_issue=true" >> $GITHUB_OUTPUT + else + echo "is_extension_issue=false" >> $GITHUB_OUTPUT + fi + + if [ "$IS_NO_EXTENSION_ISSUE" = true ]; then + echo "is_no_extension_issue=true" >> $GITHUB_OUTPUT + else + echo "is_no_extension_issue=false" >> $GITHUB_OUTPUT + fi + + - name: Comment and Close Extension Issue + if: steps.check-issue.outputs.is_extension_issue == 'true' + uses: actions/github-script@v6 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + const issueNumber = context.issue.number; + + // Check if it's a "No Extension" issue + if (${{ steps.check-issue.outputs.is_no_extension_issue }}) { + // DMCA notice message + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + body: "# Automated Message\n" + + "On 13 June 2024, the official Aniyomi repository got a DMCA notice and had to remove all of their extensions. Because of this, we will not be providing anyone with any links or extensions to avoid legal problems.\n" + + "# How to add repos?\n" + + "Although we do not give or maintain any repositories, we support adding custom repository links to your Dantotsu. \n" + + "Go to `Profile > Settings > Extensions` then paste your anime or manga links there.\n" + + "# How to find repos?\n" + + "It's very easy. Search on Google. But remember that the URL must end with index.min.json or else it won't work.\n" + + "`TLDR: We will not give repo links.`" + }); + } else { + // Standard extension issue message + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + body: `Dantotsu doesn't maintain extensions. + If the extension doesn't work we cannot help you. + Contact the owner of Respective Repo for extension-related problems` + }); + } + + // Close the issue + await github.rest.issues.update({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + state: 'closed' + }); From 12c13be2aa11cc9ede9e3ff076fda30339b6bb9f Mon Sep 17 00:00:00 2001 From: rebel onion <87634197+rebelonion@users.noreply.github.com> Date: Mon, 23 Dec 2024 23:09:36 -0600 Subject: [PATCH 07/10] Update README.md --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index 87574a9b..76bece4b 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,25 @@ Dantotsu is an [Anilist](https://anilist.co/) only client. +## Terms of Use +By downloading, installing, or using this application, you agree to: +- Use the application in compliance with all applicable laws +- Not use the application to infringe on copyrighted content +- Take full responsibility for any extensions you install or use +- Understand that the developer(s) are not responsible for third-party extensions or user actions + +This application is designed for anime tracking and legal streaming service integration. The developers do not provide, maintain, or endorse any extensions that enable access to unauthorized content. + +## Important Notice +This application is an anime tracking and management tool. The extension system is designed to integrate with legal streaming services like Jellyfin. + +We do not: +- Provide or maintain any streaming extensions +- Host or distribute copyrighted content +- Endorse or encourage copyright infringement + +Users are responsible for ensuring their use of this software complies with local laws and regulations. + ### 🚀 STAR THIS REPOSITORY TO SUPPORT THE DEVELOPER AND ENCOURAGE THE DEVELOPMENT OF THE APPLICATION! ## WANT TO CONTRIBUTE? 🤝 From b3e767d33dfccbd097ec4acedfae1738a53092c2 Mon Sep 17 00:00:00 2001 From: rebel onion <87634197+rebelonion@users.noreply.github.com> Date: Mon, 30 Dec 2024 21:26:00 -0600 Subject: [PATCH 08/10] Create privacy_policy.md --- privacy_policy.md | 106 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 privacy_policy.md diff --git a/privacy_policy.md b/privacy_policy.md new file mode 100644 index 00000000..e1480658 --- /dev/null +++ b/privacy_policy.md @@ -0,0 +1,106 @@ +# Privacy Policy + +Last Updated: Dec 30, 2024 + +## Introduction +This Privacy Policy describes how we collect, use, and handle your information when you use Dantotsu. We are committed to protecting your privacy and ensuring transparency about our data practices. + +## Information We Collect + +### Crash Reports and Analytics +We use Firebase Crashlytics to collect crash reports and technical information about your device to improve app stability and performance. This may include: +- Device type and model +- Operating system version +- Time and date of crashes +- Technical crash information +- App version +- Your AniList username (for crash reports) +- Anonymous Country-level geolocation data + +Crash reports are associated with your AniList username to allow us to contact you if we need additional information about a specific issue. However, you can choose to anonymize your crash reports through the app settings, which will remove your AniList username from the reports. + +Firebase Analytics collects anonymous usage data, including country-level geolocation information. This helps us understand how Dantotsu is being used across different regions. + +### Third-Party Authentication and Integration +Dantotsu allows you to authenticate with the following third-party services: +- AniList +- MyAnimeList +- Discord + +When using Discord Rich Presence (RPC) functionality, the app will share your current watching activity with Discord, including: +- The series you are watching +- The current episode number + +This information is only shared while you are actively using Dantotsu and have Discord RPC enabled. + +While we facilitate these connections, we do not store your login credentials. Authentication tokens are stored securely on your device only. Please note that these third-party services may collect additional information according to their own privacy policies, which we encourage you to review: +- [AniList Privacy Policy Link](https://anilist.co/terms) +- [MyAnimeList Privacy Policy Link](https://myanimelist.net/about/privacy_policy) +- [Discord Privacy Policy Link](https://discord.com/privacy) + +### Comments System +Our in-house comments API uses your AniList authentication token for verification purposes when you initially open Dantotsu. While this token is used for authentication, it is never stored on our servers. We only store: +- Your AniList ID (for authentication) +- Profile picture URL +- Comments you post +- Your upvotes on comments + +We do not track or store: +- Your AniList authentication token +- Content you view or watch +- Browsing history +- Watch history +- Personal information beyond what's listed above + +## How We Use Your Information + +### Crash Reports and Analytics +We use crash reports and analytics to: +- Identify and fix technical issues +- Improve app stability +- Enhance user experience +- Contact users about specific crash issues when necessary +- Understand app usage patterns across different regions + +You can control your privacy preferences: +- Anonymize crash reports through app settings +- Control app permissions through your device settings + +### Comments System +We use comment data to: +- Display your comments to other users +- Show upvote counts +- Associate comments with your profile + +## Data Storage and Security +- Authentication tokens are stored locally on your device +- Comment data is stored securely on our servers +- We implement appropriate security measures to protect your information + +## Data Sharing +We do not sell or share your personal information with third parties except: +- When required by law +- To provide the core functionality of the app through our integrated services + +## Your Rights and Data Protection +Under the General Data Protection Regulation (GDPR) and other data protection laws, you have certain rights regarding your personal data. You can: +- Access your comment data +- Request deletion of your comments and associated data + +To exercise these rights or request deletion of your data, you can contact the developer: +- On AniList: "rebelonion" +- On Discord: "@rebelonion" + +While we don't have an automated process for data deletion, we will process your request manually as soon as possible. + +## Children's Privacy +Our service is not directed to children under 13. We do not knowingly collect personal information from children under 13. + +## Changes to This Privacy Policy +We may update this Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the "Last Updated" date. + +## Contact Us +If you have any questions about this Privacy Policy, please contact us via: +- GitHub: [Dantotsu Issues](https://github.com/rebelonion/Dantotsu/issues) +- Discord: "@rebelonion" +- AniList: "rebelonion" From 30d6f48d233c603c398bc407ef260e76a581292f Mon Sep 17 00:00:00 2001 From: Ankit Grai Date: Tue, 31 Dec 2024 14:34:38 +0530 Subject: [PATCH 09/10] [skip ci] uncurse rebel (maybe) --- .github/workflows/beta.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 46e64586..4f3f1f4c 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -146,7 +146,6 @@ jobs: contributor_colors["ibo"]="#ff9b46" contributor_colors["aayush262"]="#5d689d" contributor_colors["Sadwhy"]="#ff7e95" - contributor_colors["rebelonion"]="#d4e5ed" hex_to_decimal() { printf '%d' "0x${1#"#"}"; } From 482e8675169c7952045b137b8ec9dd3bc8180f33 Mon Sep 17 00:00:00 2001 From: rebel onion <87634197+rebelonion@users.noreply.github.com> Date: Sun, 5 Jan 2025 08:51:29 -0600 Subject: [PATCH 10/10] Update RpcExternalAsset.kt --- .../java/ani/dantotsu/connections/discord/RpcExternalAsset.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/ani/dantotsu/connections/discord/RpcExternalAsset.kt b/app/src/main/java/ani/dantotsu/connections/discord/RpcExternalAsset.kt index c16f4b82..ffc26602 100644 --- a/app/src/main/java/ani/dantotsu/connections/discord/RpcExternalAsset.kt +++ b/app/src/main/java/ani/dantotsu/connections/discord/RpcExternalAsset.kt @@ -1,3 +1,5 @@ +// this code was kanged from the greatest mind of this era, aka shivam brahmkshatriya +// please subscribe to my only fans here: https://github.com/brahmkshatriya package ani.dantotsu.connections.discord @@ -56,4 +58,4 @@ class RPCExternalAsset( }) } } -} \ No newline at end of file +}