new branch for github pages

This commit is contained in:
Balackburn 2023-06-27 10:39:57 +02:00
parent eba0c32b46
commit d423192fbd
25 changed files with 1197 additions and 211 deletions

86
.github/ISSUE_TEMPLATE/bug.yaml vendored Normal file
View file

@ -0,0 +1,86 @@
name: Bug
description: Make sure you complete the template. Otherwise, it will be closed without further explanation!
title: "[Bug] Replace this with your title"
labels: bug
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: _Please search to see if an issue already exists for the bug you encountered_
options:
- label: I have searched the existing issues
required: true
- type: checkboxes
attributes:
label: Have you read the FAQ?
description: _Make sure you visit the [**FAQ**](https://github.com/qnblackcat/CercubePlus/wiki/FAQ) page first!_
options:
- label: Yes, I read the FAQ
required: true
- type: textarea
attributes:
label: Device info
description:
value: |
- iOS/iPadOS version:
- Device model:
- Sideload tool (AltStore, Sideloadly, TrollStore,...):
- The specific version of CercubePlus (**latest** or **newest** is **NOT** a version number!):
validations:
required: true
- type: textarea
attributes:
label: Describe the bug
description: _Please attach videos or screenshots if possible_
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce the issue
description: _Please attach videos or screenshots if possible_
value: |
1.
2.
3.
validations:
required: true
- type: textarea
id: logs
attributes:
label: Crash log (if the app crashes)
description: _If somehow the app crashes, **you must provide the crash log**. It can be found in your device's Settings App > Privacy > Analytics & Improvements > Analytics Data > Youtube-xxx-xxx.ips_
render: shell
- type: dropdown
attributes:
label: Are you using the newest version of CercubePlus? If not, why?
description: _Developers spend time and effort to fix bugs & add improvements with every release. Why don't you update to the [latest version](https://github.com/Balackburn/YTLitePlus/releases/latest) before reporting about an issue?_
multiple: false
options:
- ✅ Yes, I'm using the latest version of CercubePlus right now
- ❌ No, I'll explain at the end of the template
validations:
required: true
- type: dropdown
attributes:
label: Does the issue happen with the official YouTube from AppStore?
description: _Well, YouTube itself is buggy sometimes..._
multiple: false
options:
- ❌ No, It doesn't
- ✅ Yes, It does
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: _Um, anything else you want to say?_
validations:
required: false

37
.github/ISSUE_TEMPLATE/question-help.md vendored Normal file
View file

@ -0,0 +1,37 @@
name: Question
description: Have question(s)?
title: "[Questions] Replace with your question"
labels: question
body:
- type: checkboxes
attributes:
label: Is there an existing issue/question for this?
description: _Please search to see if an issue already exists for the bug you encountered. **I DON\'T MAKE THIS TICK BOX FOR COSMETIC.**_
options:
- label: I have searched the existing issues
required: true
- type: dropdown
attributes:
label: Do you think this is a bug?
description: _If you think this is a bug, please open a new issue with the bug template_
multiple: false
options:
- ✅ Yes, I believe this is a bug. I will open a new issue with the bug template
- ❌ No, I don't think this is a bug. I will explain below
validations:
required: true
- type: textarea
attributes:
label: My question
description: _Please enter your question here_
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: _Um, anything else you want to say?_
validations:
required: false

42
.github/RELEASE_TEMPLATE/Release.md vendored Normal file
View file

@ -0,0 +1,42 @@
# [YOUR_TWEAK_NAME] Features
CercubePlus but adds Additional Features that shouldve been added to the native CercubePlus which were probably not added.
**LowContrastMode:** This tweak helps remove the new contrasty looking UI that was first introducted way back in 2020 August/September. (Tweak made by arichorn)
<details>
<summary>More Features...</summary>
**LowContrastModeColors:** for users who doesnt use gray will get a set of colors to switch which changes and improves the UI Customization. (Add-on added for LowContrastMode)
**YTNoHeatwaves:** Turns off the Heatwaves Feature in the video player. `(CercubePlus/VideoPlayerOverlayControls)`
**YTNoUpgradeDialog:** Disables the Upgrade Dialog so you wont be prompt to update the app.
**YouMute:** Mute/unmute videos in YouTube directly.
**iPadLayout:** Gives iPhone users the ability to use the iPads Interface and the ability to use the some of the YouTube features that are not on iPhone.
**iPhoneLayout:** Gives iPad users the ability to use Community Posts, to create Shorts and the ability to use the buggy iPhone layout. but using it in split view mode fixes the ui.
**HideSponsorBlockButton:** Hide the SponsorBlock Button shown on the Nav Bar. Added by Dayanch96
**DisableWifiRelatedOptions:** want to remove sections that are only shown when internet is on? You can toggle this to remove all of those sections. Well not all but toggling the option will remove some of the annoying sections that may not be used.
**HideShadowOverlayButtons:** want to remove shadow overlay on the buttons used in the video player? Then toggle this to remove the Shadow Overlay on the buttons Previous, Next, Rewind, Forward.
**etc..**
</details>
# [YOUR_TWEAK_NAME] Release Information
Current YouTube IPA: `TEMPLATE`
Current YTLite Version: `v5.3.13`
Current App Compatibility: `iOS/iPadOS 14.0` or later
**RELEASE F1:**
[THIS IS WHERE YOU PUT YOUR CHANGES BELOW, also F1 indicates First Release on the same YouTube Version in case you needed to know]
- [<-- this subtract symbol makes the changelog look cool]
- [this right here shows you added additonal changes on a certain tweak like this for example, below]
- Improvements
- Fixed Sign-in Issue
- Fixed Ads Not Working Issue
[THIS IS HOW YOU DO IT! YOU CAN DELETE ALL OF THE TEXT I'VE SAID!]

162
.github/workflows/buildapp.yml vendored Normal file
View file

@ -0,0 +1,162 @@
# Original idea by @ISnackable. Many thanks to him for handling the most hardest parts!
# https://github.com/ISnackable/CercubePlus/blob/main/.github/workflows/Build.yml
name: Build and Release CercubePlus
on:
workflow_dispatch:
inputs:
cercube_version:
description: "The version of YTLite"
default: "5.3.11"
required: true
type: string
decrypted_youtube_url:
description: "The direct URL to the decrypted YouTube ipa"
default: ""
required: true
type: string
youtube_version:
description: "The version of YouTube"
default: ""
required: true
type: string
bundle_id:
description: "Modify the bundle ID. Not recommended"
default: "com.google.ios.youtube"
required: true
type: string
app_name:
description: "Modify the name of the app on the Home Screen. Not recommended"
default: "YouTube"
required: true
type: string
create_release:
description: "Create a draft release"
default: true
required: false
type: boolean
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build CercubePlus
runs-on: macos-latest
permissions:
contents: write
steps:
- name: Checkout Main
uses: actions/checkout@v3.5.2
with:
path: main
submodules: recursive
- name: Install Dependencies
run: brew install ldid dpkg make
- name: Setup Theos
uses: actions/checkout@v3.5.2
with:
repository: theos/theos
ref: master
path: theos
submodules: recursive
- name: Caching
id: SDK
uses: actions/cache@v3.3.1
env:
cache-name: iOS-15.5-SDK
with:
path: theos/sdks/
key: ${{ env.cache-name }}
- name: Download iOS 15.5 SDK
if: steps.SDK.outputs.cache-hit != 'true'
run: |
svn checkout -q https://github.com/chrisharper22/sdks/trunk/iPhoneOS15.5.sdk
mv *.sdk $THEOS/sdks
env:
THEOS: ${{ github.workspace }}/theos
- name: Setup Theos Jailed
uses: actions/checkout@v3.5.2
with:
repository: qnblackcat/theos-jailed
ref: master
path: theos-jailed
submodules: recursive
- name: Install Theos Jailed
run: |
./theos-jailed/install
env:
THEOS: ${{ github.workspace }}/theos
- name: Download YTLite & Prepare YouTube iPA
run: |
curl "https://raw.githubusercontent.com/Muirey03/RemoteLog/master/RemoteLog.h" --output "$THEOS/include/RemoteLog.h"
curl "https://dl.dropboxusercontent.com/s/b01erqbp3ajc5e2/me.alfhaily.cercube_${{ env.CERCUBE_VERSION }}_iphoneos-arm.deb" --output "main/Tweaks/YTLite/me.alfhaily.cercube_${{ env.CERCUBE_VERSION }}_iphoneos-arm.deb"
echo -e "==> \033[1mCercube v${{ inputs.cercube_version }} downloaded! \033[0m"
wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa
echo -e "==> \033[1mYouTube v${{ inputs.youtube_version }} downloaded! \033[0m"
cd main/Tweaks/YTLite && tar -xf "me.alfhaily.cercube_5.3.11_iphoneos-arm.deb" && tar -xf data.tar.* && cd ../../..
echo -e "==> \033[1mCercube v${{ inputs.cercube_version }} unpacked! \033[0m"
unzip -q main/YouTube.ipa -d main/tmp
rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources
rm -rf main/tmp/Payload/YouTube.app/PlugIns/*
cp -R main/Extensions/*.appex main/tmp/Payload/YouTube.app/PlugIns
echo -e "==> \033[1mYouTube v${{ inputs.youtube_version }} unpacked! \033[0m"
env:
THEOS: ${{ github.workspace }}/theos
CERCUBE_VERSION: ${{ inputs.cercube_version }}
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }}
- name: Fix Compiling & Build Package
id: build_package
run: |
(echo PATH=\"$(brew --prefix make)/libexec/gnubin:\$PATH\" >> ~/.zprofile)
cd ${{ github.workspace }}/main
sed -i '' "12s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile
sed -i '' "11s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile
make package FINALPACKAGE=1
(mv "packages/$(ls -t packages | head -n1)" "packages/CercubePlus_${{ env.YOUTUBE_VERSION }}_${{ env.CERCUBE_VERSION }}.ipa")
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT
echo -e "==> \033[1mSHASUM256: $(shasum -a 256 packages/*.ipa | cut -f1 -d' ')\033[0m"
echo -e "==> \033[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m"
env:
THEOS: ${{ github.workspace }}/theos
CERCUBE_VERSION: ${{ inputs.cercube_version }}
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
BUNDLE_ID: ${{ inputs.bundle_id }}
APP_NAME: ${{ inputs.app_name }}
- name: Upload Artifact
uses: actions/upload-artifact@v3.1.2
env:
CERCUBE_VERSION: ${{ inputs.cercube_version }}
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
with:
name: CercubePlus_${{ env.YOUTUBE_VERSION }}_${{ env.CERCUBE_VERSION }}
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
if-no-files-found: error
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v0.1.15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CERCUBE_VERSION: ${{ inputs.CERCUBE_VERSION }}
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
DRAFT: ${{ inputs.create_release }}
with:
tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.CERCUBE_VERSION }}-(${{ github.run_number }})
name: v${{ env.YOUTUBE_VERSION }}-${{ env.CERCUBE_VERSION }}-(${{ github.run_number }})
files: main/packages/*.ipa
draft: ${{ env.DRAFT }}

View file

@ -1,42 +0,0 @@
name: Update apps.json everyday
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
jobs:
update_json:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests
- name: Run script
run: |
python update_json.py
- name: Check for changes
id: check_changes
run: |
git diff --exit-code || echo "::set-output name=has_changes::true"
- name: Commit and push changes
if: steps.check_changes.outputs.has_changes == 'true'
run: |
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Actions"
git add .
git commit -m "Update JSON file with latest release"
git push

6
.gitignore vendored
View file

@ -1 +1,7 @@
.DS_Store
.theos/
packages/
tmp/
Tweaks/YTLite/*
!Tweaks/YTLite/.gitkeep
Resources/

42
.gitmodules vendored Normal file
View file

@ -0,0 +1,42 @@
[submodule "Tweaks/YTUHD"]
path = Tweaks/YTUHD
url = https://github.com/PoomSmart/YTUHD.git
[submodule "Tweaks/YouPiP"]
path = Tweaks/YouPiP
url = https://github.com/PoomSmart/YouPiP.git
[submodule "Tweaks/Return-YouTube-Dislikes"]
path = Tweaks/Return-YouTube-Dislikes
url = https://github.com/PoomSmart/Return-YouTube-Dislikes.git
[submodule "Tweaks/YouTubeHeader"]
path = Tweaks/YouTubeHeader
url = https://github.com/PoomSmart/YouTubeHeader.git
[submodule "Tweaks/Alderis"]
path = Tweaks/Alderis
url = https://github.com/qnblackcat/Alderis.git
[submodule "Tweaks/PSHeader"]
path = Tweaks/PSHeader
url = https://github.com/PoomSmart/PSHeader.git
[submodule "Tweaks/YTABConfig"]
path = Tweaks/YTABConfig
url = https://github.com/PoomSmart/YTABConfig.git
[submodule "Tweaks/YouMute"]
path = Tweaks/YouMute
url = https://github.com/PoomSmart/YouMute.git
[submodule "Tweaks/RemoteLog"]
path = Tweaks/RemoteLog
url = https://github.com/Muirey03/RemoteLog.git
[submodule "Tweaks/FLEX"]
path = Tweaks/FLEX
url = https://github.com/qnblackcat/FLEX-Classes.git
[submodule "Tweaks/iSponsorBlock"]
path = Tweaks/iSponsorBlock
url = https://github.com/Galactic-Dev/iSponsorBlock.git
[submodule "Extensions"]
path = Extensions
url = https://github.com/CokePokes/YoutubeExtensions.git
[submodule "Tweaks/YTHoldForSpeed"]
path = Tweaks/YTHoldForSpeed
url = https://github.com/arichorn/YTHoldForSpeed.git
[submodule "Tweaks/DontEatMyContent"]
path = Tweaks/DontEatMyContent
url = https://github.com/therealFoxster/DontEatMyContent.git

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

108
apps.json
View file

@ -1,108 +0,0 @@
{
"name": "YTLitePlus (for Altstore)",
"identifier": "com.ytlite.source",
"apps": [
{
"beta": false,
"name": "Youtube (YTLitePlus)",
"bundleIdentifier": "com.google.ios.youtube",
"developerName": "Dayanch96 & Arichorn",
"subtitle": "YTLite with more features!",
"version": "18.23.3",
"versionDate": "2023-06-27T08:15:21Z",
"versionDescription": "Current YouTube IPA: \"v18.23.3\" \r\nCurrent YTLite Version: \"v2.0\" \r\nCurrent App Compatibility: \"iOS/iPadOS 14.0\" or later\r\n\r\nRELEASE 18.23.3\u20222.0: (June 27th 2023)\r\n\r\n\u2022 Initial YTLitePlus Release\r\n\r\nIssues in this Release:\r\n\u2022 LowContrastMode doesn't work (it work with older YT version)\r\n\u2022 The old Darkmode doesn't work quite right",
"downloadURL": "https://github.com/Balackburn/YTLitePlus/releases/download/v18.23.3-2.0/YTLitePlus_18.23.3_2.0.ipa",
"localizedDescription": "YTLite with more features! \n\nSupercharge your YouTube experience with +15 tweaks: \n\n\u2022 YTLite: Ad-blocking & background playback\n\u2022 iSponsorBlock: Skip sponsor ads\n\u2022 YouPiP: Native PiP mode\n\u2022 YTUHD: 2K & 4K video quality\n\u2022 YouTube Dislike Return: Reinstate dislike counts\n\u2022 YTClassicVideoQuality: Old video quality selector\n\u2022 YTNoHoverCards: Disable suggested videos\n\u2022 YTABGoodies: Disable A/B testing features\n\u2022 NOYTPremium: Remove Premium upsell alerts\n\u2022 YTSpeed: Add 2.25x to 4x playback speeds\n\u2022 YTMiniplayerEnabler: Enable Miniplayer\n\u2022 DontEatMyContent: Prevent notch issues\n\u2022 YTShortsProgress: Enable progress bar for Shorts\n\u2022 YTABConfig: Control A/B testing flags\n\u2022 YouMute: Mute/unmute videos\n\u2022 LowContrastMode: Reduce interface contrast\n\u2022 And many more...",
"iconURL": "https://raw.githubusercontent.com/Balackburn/YTLitePlus/AltstoreSource/Youtube_logo-512.png",
"tintColor": "e22a41",
"size": 93660296,
"screenshotURLs": [
"https://raw.githubusercontent.com/Balackburn/YTLitePlus/AltstoreSource/screenshots/1.png",
"https://raw.githubusercontent.com/Balackburn/YTLitePlus/AltstoreSource/screenshots/2.png",
"https://raw.githubusercontent.com/Balackburn/YTLitePlus/AltstoreSource/screenshots/3.png",
"https://raw.githubusercontent.com/Balackburn/YTLitePlus/AltstoreSource/screenshots/4.png",
"https://raw.githubusercontent.com/Balackburn/YTLitePlus/AltstoreSource/screenshots/5.png",
"https://raw.githubusercontent.com/Balackburn/YTLitePlus/AltstoreSource/screenshots/6.png",
"https://raw.githubusercontent.com/Balackburn/YTLitePlus/AltstoreSource/screenshots/7.png",
"https://raw.githubusercontent.com/Balackburn/YTLitePlus/AltstoreSource/screenshots/8.png"
],
"appPermissions": {
"entitlements": [
{
"name": "com.apple.security.application-groups"
},
{
"name": "com.apple.developer.associated-domains"
},
{
"name": "com.apple.developer.coremedia.allow-alternate-video-decoder-selection"
},
{
"name": "com.apple.developer.usernotifications.time-sensitive"
},
{
"name": "com.apple.developer.coremedia.allow-alternate-video-decoder-selection"
},
{
"name": "com.apple.developer.usernotifications.time-sensitive"
},
{
"name": "get-task-allow"
},
{
"name": "com.apple.developer.device-information.user-assigned-device-name"
},
{
"name": "com.apple.developer.group-session"
},
{
"name": "keychain-access-groups"
},
{
"name": "com.apple.developer.networking.multicast"
},
{
"name": "aps-environment"
},
{
"name": "com.apple.developer.networking.wifi-info"
}
],
"privacy": [
{
"name": "AppleMusic",
"usageDescription": "YTLitePlus requires access to your Apple Music library."
},
{
"name": "BluetoothPeripheral",
"usageDescription": "YTLitePlus requires Bluetooth access to connect with nearby peripherals."
},
{
"name": "Camera",
"usageDescription": "YTLitePlus requires access to the camera to capture photos and videos."
},
{
"name": "Contacts",
"usageDescription": "YTLitePlus requires access to your contacts to help you share content with your friends."
},
{
"name": "LocalNetwork",
"usageDescription": "YTLitePlus requires local network access to connect and communicate with nearby devices."
},
{
"name": "LocationWhenInUse",
"usageDescription": "YTLitePlus requires access to your location while using the app to provide personalized recommendations."
},
{
"name": "Microphone",
"usageDescription": "YTLitePlus requires access to your microphone to record audio."
},
{
"name": "PhotoLibrary",
"usageDescription": "YTLitePlus requires access to your Photo Library to save photos and videos."
}
]
}
}
]
}

BIN
images/image_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
images/image_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View file

Before

Width:  |  Height:  |  Size: 601 KiB

After

Width:  |  Height:  |  Size: 601 KiB

View file

Before

Width:  |  Height:  |  Size: 346 KiB

After

Width:  |  Height:  |  Size: 346 KiB

View file

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

BIN
images/image_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/image_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
images/image_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
images/image_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View file

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View file

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

View file

Before

Width:  |  Height:  |  Size: 467 KiB

After

Width:  |  Height:  |  Size: 467 KiB

822
index.html Normal file

File diff suppressed because one or more lines are too long

View file

@ -1,61 +0,0 @@
import json
import re
import requests
# Fetch the latest release information from GitHub
def fetch_latest_release(repo_url, keyword):
api_url = f"https://api.github.com/repos/{repo_url}/releases"
headers = {"Accept": "application/vnd.github+json"}
response = requests.get(api_url, headers=headers)
releases = response.json()
for release in releases:
if keyword in release["name"]:
return release
raise ValueError(f"No release found containing the keyword '{keyword}'.")
# Update the JSON file with the fetched data
def remove_tags(text):
text = re.sub('<[^<]+?>', '', text) # Remove HTML tags
text = re.sub(r'#{1,6}\s?', '', text) # Remove markdown header tags
return text
def update_json_file(json_file, fetched_data):
with open(json_file, "r") as file:
data = json.load(file)
app = data["apps"][0]
version = re.search(r"(\d+\.\d+\.\d+)", fetched_data["tag_name"]).group(1)
app["version"] = version
app["versionDate"] = fetched_data["published_at"]
description = fetched_data["body"]
keyword = "YTLitePlus Release Information"
if keyword in description:
description = description.split(keyword, 1)[1].strip()
description = remove_tags(description)
description = re.sub(r'\*{2}', '', description)
description = re.sub(r'-', '', description)
description = re.sub(r'`', '"', description)
app["versionDescription"] = description
app["downloadURL"] = fetched_data["assets"][0]["browser_download_url"]
app["size"] = fetched_data["assets"][0]["size"]
with open(json_file, "w") as file:
json.dump(data, file, indent=2)
# Main function
def main():
repo_url = "Balackburn/YTLitePlus"
json_file = "apps.json"
keyword = "YTLitePlus"
fetched_data = fetch_latest_release(repo_url, keyword)
update_json_file(json_file, fetched_data)
if __name__ == "__main__":
main()