mirror of
https://github.com/vitalygashkov/crextractor.git
synced 2026-07-16 01:44:24 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
99f5efca66 | ||
|
|
41b71bffb5 | ||
|
|
94be27e20f | ||
|
|
d03e9cadeb | ||
|
|
eba50dccd0 | ||
|
|
345dcd1e3b |
@@ -0,0 +1 @@
|
|||||||
|
custom: ['t.me/tribute/app?startapp=dqW2']
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
name: Publish
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 22
|
||||||
|
registry-url: https://registry.npmjs.org/
|
||||||
|
- run: npm ci
|
||||||
|
|
||||||
|
# Extract version from package.json and determine release channel
|
||||||
|
- name: Parse version and determine release channel
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
VERSION=$(node -p "require('./package.json').version")
|
||||||
|
echo "PACKAGE_VERSION=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
if [[ $VERSION == *"-alpha."* ]]; then
|
||||||
|
echo "NPM_TAG=alpha" >> $GITHUB_OUTPUT
|
||||||
|
echo "PRERELEASE=true" >> $GITHUB_OUTPUT
|
||||||
|
elif [[ $VERSION == *"-beta."* ]]; then
|
||||||
|
echo "NPM_TAG=beta" >> $GITHUB_OUTPUT
|
||||||
|
echo "PRERELEASE=true" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "NPM_TAG=latest" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Publish with the appropriate tag
|
||||||
|
- name: Publish to npm
|
||||||
|
run: npm publish --tag ${{ steps.version.outputs.NPM_TAG }}
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
|
||||||
|
# Only create GitHub releases for stable versions
|
||||||
|
- name: Create GitHub Release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
generate_release_notes: true
|
||||||
|
prerelease: ${{ steps.version.outputs.PRERELEASE == 'true' }}
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
+1
-1
@@ -14,7 +14,7 @@ const args = parseArgs({
|
|||||||
},
|
},
|
||||||
cleanup: {
|
cleanup: {
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
default: false,
|
default: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
+3
-7
@@ -1,16 +1,12 @@
|
|||||||
const { execSync } = require('node:child_process');
|
const { execSync } = require('node:child_process');
|
||||||
const { join } = require('node:path');
|
const { join } = require('node:path');
|
||||||
const { readdir, readFile, writeFile, rm } = require('node:fs/promises');
|
const { readdir, readFile, writeFile, rm } = require('node:fs/promises');
|
||||||
const { download } = require('molnia');
|
|
||||||
const { existsSync } = require('node:fs');
|
const { existsSync } = require('node:fs');
|
||||||
|
const { download } = require('molnia');
|
||||||
|
|
||||||
const downloadMobileApk = async () => {
|
const downloadMobileApk = async () => {
|
||||||
const source = 'https://apkcombo.com/crunchyroll/com.crunchyroll.crunchyroid/download/apk';
|
const url = 'https://api.qqaoop.com/v11/apps/com.crunchyroll.crunchyroid/download?userId=1';
|
||||||
const page = await fetch(source);
|
const filepath = join(process.cwd(), 'crunchyroll.apk');
|
||||||
const html = await page.text();
|
|
||||||
const route = '/r2' + html.split('/r2')[1]?.split('"')[0];
|
|
||||||
const url = `https://apkcombo.com${route}`;
|
|
||||||
const filepath = join(process.cwd(), 'crunchyroll.xapk');
|
|
||||||
await download(url, {
|
await download(url, {
|
||||||
output: filepath,
|
output: filepath,
|
||||||
onError: (error) => console.error(error),
|
onError: (error) => console.error(error),
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "crextractor",
|
"name": "crextractor",
|
||||||
"version": "1.2.0",
|
"version": "1.2.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "crextractor",
|
"name": "crextractor",
|
||||||
"version": "1.2.0",
|
"version": "1.2.1",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
|
|||||||
+3
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "crextractor",
|
"name": "crextractor",
|
||||||
"version": "1.2.0",
|
"version": "1.2.1",
|
||||||
"description": "Utility for extracting credentials from the Crunchyroll Android app",
|
"description": "Utility for extracting credentials from the Crunchyroll Android app",
|
||||||
"main": "crextractor.js",
|
"main": "crextractor.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -15,6 +15,8 @@
|
|||||||
"type": "commonjs",
|
"type": "commonjs",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node bin/cli.js",
|
"start": "node bin/cli.js",
|
||||||
|
"extract:mobile": "node bin/cli.js --target mobile --output ./credentials.mobile.json",
|
||||||
|
"extract:tv": "node bin/cli.js --target tv --output ./credentials.tv.json",
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
Reference in New Issue
Block a user