Skip to content

Commit 7b2105d

Browse files
committed
Refactor update check mechanism and Telegram notification workflow.
1 parent 9d6d665 commit 7b2105d

File tree

3 files changed

+48
-37
lines changed

3 files changed

+48
-37
lines changed

.github/workflows/android.yml

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -50,27 +50,6 @@ jobs:
5050
name: business-debug-app-${{ env.SHORT_SHA }}
5151
path: app/build/outputs/apk/business/debug/app-business-debug.apk
5252

53-
- name: Post to Telegram channel
54-
if: ${{ success() && github.ref == 'refs/heads/master' && github.ref_type != 'tag' }}
55-
env:
56-
CHANNEL_ID: ${{ secrets.CHANNEL_ID }}
57-
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
58-
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
59-
COMMIT_URL: ${{ github.event.head_commit.url }}
60-
run: |
61-
if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then
62-
GITHUB_SHA_SHORT=$(git rev-parse --short HEAD)
63-
export output_whatsapp=app/WaEnhancer_$GITHUB_SHA_SHORT.apk
64-
export output_business=app/WaEnhancer_Business_$GITHUB_SHA_SHORT.apk
65-
cp app/build/outputs/apk/whatsapp/debug/app-whatsapp-debug.apk $output_whatsapp
66-
cp app/build/outputs/apk/business/debug/app-business-debug.apk $output_business
67-
export LOG=$(cat changelog.txt)
68-
ESCAPED=$(python3 -c 'import json,os,urllib.parse; msg = json.dumps(os.getenv("LOG")); print(urllib.parse.quote(msg if len(msg) <= 1024 else json.dumps(os.getenv("COMMIT_URL"))))')
69-
70-
# Send WhatsApp variant
71-
curl "https://api.telegram.org/bot${BOT_TOKEN}/sendMediaGroup?chat_id=${CHANNEL_ID}&media=%5B%7B%22type%22%3A%22document%22%2C%20%22media%22%3A%22attach%3A%2F%2Fwa%22%7D%2C%7B%22type%22%3A%22document%22%2C%20%22media%22%3A%22attach%3A%2F%2Fw4b%22%2C%22caption%22%3A${ESCAPED}%7D%5D" -F wa="@$output_whatsapp" -F w4b="@$output_business"
72-
fi
73-
7453
- name: Upload to GitHub release
7554
uses: softprops/action-gh-release@v2
7655
with:
@@ -81,3 +60,26 @@ jobs:
8160
app/build/outputs/apk/whatsapp/debug/app-whatsapp-debug.apk
8261
app/build/outputs/apk/business/debug/app-business-debug.apk
8362
tag_name: debug-${{ env.SHORT_SHA }}
63+
64+
- name: Read changelog
65+
if: ${{ success() && github.ref == 'refs/heads/master' && github.ref_type != 'tag' && secrets.BOT_TOKEN != '' }}
66+
id: changelog
67+
uses: actions/github-script@v8
68+
with:
69+
script: |
70+
const fs = require('fs');
71+
const changelog = fs.readFileSync('changelog.txt', 'utf8').trim();
72+
core.setOutput('content', changelog);
73+
74+
- name: Post to Telegram channel
75+
if: ${{ success() && github.ref == 'refs/heads/master' && github.ref_type != 'tag' && secrets.BOT_TOKEN != '' }}
76+
uses: Dev4Mod/telegram-github-action@main
77+
with:
78+
to: ${{ secrets.CHANNEL_ID }}
79+
token: ${{ secrets.BOT_TOKEN }}
80+
format: markdown
81+
disable_web_page_preview: true
82+
message: |
83+
${{ steps.changelog.outputs.content }}
84+
85+
Release: https://github.com/${{ github.repository }}/releases/tag/debug-${{ env.SHORT_SHA }}

app/src/main/java/com/wmods/wppenhacer/UpdateChecker.java

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
package com.wmods.wppenhacer;
22

33
import android.app.Activity;
4-
import android.text.Html;
54

65
import com.wmods.wppenhacer.xposed.core.WppCore;
76
import com.wmods.wppenhacer.xposed.core.components.AlertDialogWpp;
87
import com.wmods.wppenhacer.xposed.utils.Utils;
98

9+
import org.json.JSONObject;
10+
1011
import java.util.Objects;
1112

13+
import de.robv.android.xposed.XposedBridge;
1214
import okhttp3.OkHttpClient;
1315

1416
public class UpdateChecker implements Runnable {
1517

18+
private static final String LATEST_RELEASE_API = "https://api.github.com/repos/Dev4Mod/WaEnhancer/releases/latest";
19+
private static final String RELEASE_TAG_PREFIX = "debug-";
20+
private static final String TELEGRAM_UPDATE_URL = "https://t.me/waenhancher";
21+
1622
private final Activity mActivity;
1723

1824
public UpdateChecker(Activity activity) {
@@ -25,22 +31,25 @@ public void run() {
2531
try {
2632
var client = new OkHttpClient();
2733
var request = new okhttp3.Request.Builder()
28-
.url("https://t.me/s/waenhancher")
34+
.url(LATEST_RELEASE_API)
2935
.build();
30-
var response = client.newCall(request).execute();
31-
var body = response.body();
32-
if (body == null) return;
33-
var content = body.string();
34-
var findText = "WaEnhancer_Business_";
35-
var indexHash = content.lastIndexOf(findText);
36-
var lastindexHash = content.indexOf(".apk", indexHash);
37-
var hash = content.substring(indexHash + findText.length(), lastindexHash);
36+
String hash;
37+
String changelog;
38+
try (var response = client.newCall(request).execute()) {
39+
if (!response.isSuccessful()) return;
40+
var body = response.body();
41+
var content = body.string();
42+
var release = new JSONObject(content);
43+
var tagName = release.optString("tag_name", "");
44+
XposedBridge.log("[UPDATE]" +tagName);
45+
if (tagName.isBlank() || !tagName.startsWith(RELEASE_TAG_PREFIX)) return;
46+
hash = tagName.substring(RELEASE_TAG_PREFIX.length()).trim();
47+
changelog = release.optString("body", "No changelog available.").trim();
48+
}
49+
50+
if (hash.isBlank()) return;
3851
var appInfo = mActivity.getPackageManager().getPackageInfo(BuildConfig.APPLICATION_ID, 0);
3952
if (!appInfo.versionName.toLowerCase().contains(hash.toLowerCase().trim()) && !Objects.equals(WppCore.getPrivString("ignored_version", ""), hash)) {
40-
var changelogIndex = content.indexOf("<div class=\"tgme_widget_message_text js-message_text\" dir=\"auto\">", lastindexHash);
41-
var closeTag = content.indexOf("</div>", changelogIndex);
42-
var changelogText = content.substring(changelogIndex, closeTag + 6);
43-
var changelog = Html.fromHtml(changelogText, Html.FROM_HTML_MODE_COMPACT).toString();
4453
mActivity.runOnUiThread(() -> {
4554
var dialog = new AlertDialogWpp(mActivity);
4655
dialog.setTitle("WAE - New version available!");
@@ -50,7 +59,7 @@ public void run() {
5059
dialog1.dismiss();
5160
});
5261
dialog.setPositiveButton("Update", (dialog1, which) -> {
53-
Utils.openLink(mActivity, "https://t.me/waenhancher");
62+
Utils.openLink(mActivity, TELEGRAM_UPDATE_URL);
5463
dialog1.dismiss();
5564
});
5665
dialog.show();

app/src/main/java/com/wmods/wppenhacer/xposed/core/db/MessageHistory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public enum MessageType {
3737
}
3838

3939
public MessageHistory(Context context) {
40-
super(context, "MessageHistory.db", null, 2);
40+
super(context, "MessageHistory.db", null, 3);
4141
messagesCache = new LruCache<>(MESSAGE_CACHE_SIZE);
4242
seenMessageCache = new LruCache<>(SEEN_MESSAGE_CACHE_SIZE);
4343
seenMessagesListCache = new LruCache<>(SEEN_MESSAGES_LIST_CACHE_SIZE);

0 commit comments

Comments
 (0)