Skip to content

Commit

Permalink
Added update proto workflow (#61)
Browse files Browse the repository at this point in the history
  • Loading branch information
edgardmessias authored May 13, 2023
1 parent 33ecb49 commit 9434e12
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 4 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/update-proto.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Update WAProto

on:
schedule:
- cron: "10 1 * * *"
workflow_dispatch:

permissions:
contents: write
pull-requests: write

jobs:
update-proto:
runs-on: ubuntu-latest
timeout-minutes: 10

steps:
- uses: actions/checkout@v3

- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 16.x

- name: Install packages
run: |
yarn
yarn --pure-lockfile --cwd proto-extract
- name: Update WAProto.proto
id: wa_proto_info
run: |
yarn --cwd proto-extract start > wa-logs.txt
WA_VERSION=$(cat wa-logs.txt | perl -n -e'/Current version\: (.+)/ && print $1')
WA_JS_URL=$(cat wa-logs.txt | perl -n -e'/Found source JS URL\: (.+)/ && print $1')
echo "wa_version=$WA_VERSION" >> $GITHUB_OUTPUT
echo "wa_js_url=$WA_JS_URL" >> $GITHUB_OUTPUT
- name: GenerateStatics
run: yarn gen:protobuf

- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
commit-message: "chore: updated proto to v${{steps.wa_proto_info.outputs.wa_version}}"
title: "Whatsapp v${{steps.wa_proto_info.outputs.wa_version}} proto change"
branch: "update-proto/stable"
delete-branch: true
labels: "update-proto"
body: "Automated changes\nFound source JS URL: ${{steps.wa_proto_info.outputs.wa_js_url}}\nCurrent version: v${{steps.wa_proto_info.outputs.wa_version}}"
add-paths: |
WAProto/*
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ node_modules
output.csv
Proxy
test.ts
TestData
TestData
wa-logs.txt
20 changes: 17 additions & 3 deletions proto-extract/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,23 @@ async function findAppModules() {
}
}
const baseURL = 'https://web.whatsapp.com'
const index = await request.get(baseURL, ua)
const bootstrapQRID = index.match(/src="\/app.([0-9a-z]{10,}).js"/)[1]
const bootstrapQRURL = baseURL + '/app.' + bootstrapQRID + '.js'
const serviceworker = await request.get(`${baseURL}/serviceworker.js`, ua)

const versions = [...serviceworker.matchAll(/assets-manifest-([\d\.]+).json/g)].map(r => r[1])
const version = versions[0]

let bootstrapQRURL = ''
if(version) {
const asset = await request.get(`${baseURL}/assets-manifest-${version}.json`, ua)
const hashFiles = JSON.parse(asset)
const files = Object.keys(hashFiles)
const app = files.find(f => /^app\./.test(f))
bootstrapQRURL = `${baseURL}/${app}`
} else {
const index = await request.get(baseURL, ua)
const bootstrapQRID = index.match(/src="\/app.([0-9a-z]{10,}).js"/)[1]
bootstrapQRURL = baseURL + '/app.' + bootstrapQRID + '.js'
}

console.error('Found source JS URL:', bootstrapQRURL)

Expand Down

0 comments on commit 9434e12

Please sign in to comment.