- Messages
- 1,392
- Reactions
- 5,673
- Points
- 173
- Website
- github.com
- acidbubblesanon
- Patreon
- acidbubbles
I don't like doing the same thing twice. I'll spend days avoiding repeating a 5 minutes task.
I already have a plugin template where everything is automated using GitHub Actions: https://github.com/acidbubbles/vam-plugin-template
Except posting to this new otherwise-amazing resouces site.
So, until this becomes official, here's a few notes on how I'll automate this from GitHub... eventually.
Now to actually create a new version for an existing post... the content type here being
So that means to actually make this last request, I need to:
1. Determine how to create this hash, which should be found in the javascript code
2. Show the form and extract the csrf token before building this
3. Create a template of the form data to push and POST it
So... a pain, but feasible.
The response can then be verified:
I already have a plugin template where everything is automated using GitHub Actions: https://github.com/acidbubbles/vam-plugin-template
Except posting to this new otherwise-amazing resouces site.
So, until this becomes official, here's a few notes on how I'll automate this from GitHub... eventually.
Code:
$url = "https://hub.virtamate.com/dev/index.php?login/login"
$username = "you@example.org"
$password = "please-dont-use-1234"
curl -c cookies.txt "$url" -w "%{http_code}"
curl -c cookies.txt -b cookies.txt -d "login=$username&password=$password&cookie_check=1&redirect=https://hub.virtamate.com/dev®ister=0&remember=0" -w "%{http_code}" $url
Now to actually create a new version for an existing post... the content type here being
Code:
multipart/form-data; boundary=---------------------------272578178724936978892724889818
Code:
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="new_version"
1
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="version_string"
v0.0.0-test
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="version_type"
external
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="external_download_url"
https://github.com/acidbubbles/vam-timeline/releases
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="new_update"
1
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="update_title"
Timeline v0.0.0-test
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="update_message_html"
<p>Please hold for release notes...</p>
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="attachment_hash"
2add47801e153f4a80e79fcc46648129
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="attachment_hash_combined"
{"type":"resource_update","context":{"resource_id":94},"hash":"2add47801e153f4a80e79fcc46648129"}
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="_xfToken"
1589251266,971e77ec81ffd3a633129e24a551a346
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="_xfRequestUri"
/dev/index.php?resources/timeline.94/post-update
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="_xfWithData"
1
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="_xfToken"
1589251266,971e77ec81ffd3a633129e24a551a346
-----------------------------272578178724936978892724889818
Content-Disposition: form-data; name="_xfResponseType"
json
-----------------------------272578178724936978892724889818--
So that means to actually make this last request, I need to:
1. Determine how to create this hash, which should be found in the javascript code
2. Show the form and extract the csrf token before building this
3. Create a template of the form data to push and POST it
So... a pain, but feasible.
The response can then be verified:
Code:
{
"status": "ok"
}