Fix script for https://github.com/firefly-iii/firefly-iii/issues/6879
This commit is contained in:
18
autosave.php
18
autosave.php
@@ -29,10 +29,8 @@ bcscale(12);
|
|||||||
* Keep in mind that running this script is entirely AT YOUR OWN RISK with ZERO GUARANTEES.
|
* Keep in mind that running this script is entirely AT YOUR OWN RISK with ZERO GUARANTEES.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
define('FIREFLY_III_URL', 'http://firefly.sd.home');
|
const FIREFLY_III_URL = 'http://firefly.sd.home';
|
||||||
define('FIREFLY_III_TOKEN',
|
const FIREFLY_III_TOKEN = 'ey...';
|
||||||
'ey...'
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HERE BE MONSTERS
|
* HERE BE MONSTERS
|
||||||
@@ -83,7 +81,7 @@ foreach ($groups as $group) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the main transaction (we know its one)
|
// get the main transaction (we know it's one)
|
||||||
$transaction = $group['attributes']['transactions'][0];
|
$transaction = $group['attributes']['transactions'][0];
|
||||||
|
|
||||||
// maybe already has a link to existing auto-save?
|
// maybe already has a link to existing auto-save?
|
||||||
@@ -93,8 +91,8 @@ foreach ($groups as $group) {
|
|||||||
foreach ($links as $link) {
|
foreach ($links as $link) {
|
||||||
$opposingTransactionId = getOpposingTransaction($transaction['transaction_journal_id'], $link);
|
$opposingTransactionId = getOpposingTransaction($transaction['transaction_journal_id'], $link);
|
||||||
|
|
||||||
// if the opposing transaction is a transfer, and it's a autosave link (recognized by the tag)
|
// if the opposing transaction is a transfer, and it's an autosave link (recognized by the tag)
|
||||||
// we dont need to create another one.
|
// we don't need to create another one.
|
||||||
$opposingTransaction = getTransaction($opposingTransactionId);
|
$opposingTransaction = getTransaction($opposingTransactionId);
|
||||||
|
|
||||||
if (isAutoSaveTransaction($opposingTransaction)) {
|
if (isAutoSaveTransaction($opposingTransaction)) {
|
||||||
@@ -110,6 +108,8 @@ foreach ($groups as $group) {
|
|||||||
/**
|
/**
|
||||||
* @param array $group
|
* @param array $group
|
||||||
* @param array $arguments
|
* @param array $arguments
|
||||||
|
*
|
||||||
|
* @throws JsonException
|
||||||
*/
|
*/
|
||||||
function createAutoSaveTransaction(array $group, array $arguments): void
|
function createAutoSaveTransaction(array $group, array $arguments): void
|
||||||
{
|
{
|
||||||
@@ -243,7 +243,7 @@ function getOpposingTransaction(int $transactionId, array $link): int
|
|||||||
function getLinks(array $transaction): array
|
function getLinks(array $transaction): array
|
||||||
{
|
{
|
||||||
$journalId = $transaction['transaction_journal_id'];
|
$journalId = $transaction['transaction_journal_id'];
|
||||||
$links = getCurlRequest(sprintf('/api/v1/transactions/%d/transaction_links', $journalId));
|
$links = getCurlRequest(sprintf('/api/v1/transaction-journals/%d/links', $journalId));
|
||||||
|
|
||||||
if (count($links['data']) > 0) {
|
if (count($links['data']) > 0) {
|
||||||
return $links['data'];
|
return $links['data'];
|
||||||
@@ -427,7 +427,7 @@ function getArguments(array $arguments): array
|
|||||||
/** @var string $argument */
|
/** @var string $argument */
|
||||||
foreach ($arguments as $argument) {
|
foreach ($arguments as $argument) {
|
||||||
foreach ($fields as $field) {
|
foreach ($fields as $field) {
|
||||||
if (0 === strpos($argument, sprintf('--%s=', $field))) {
|
if (str_starts_with($argument, sprintf('--%s=', $field))) {
|
||||||
$result[$field] = (int) str_replace(sprintf('--%s=', $field), '', $argument);
|
$result[$field] = (int) str_replace(sprintf('--%s=', $field), '', $argument);
|
||||||
if ('amount' === $field) {
|
if ('amount' === $field) {
|
||||||
$result[$field] = (float) str_replace(sprintf('--%s=', $field), '', $argument);
|
$result[$field] = (float) str_replace(sprintf('--%s=', $field), '', $argument);
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ This little script can automatically create these transactions for you, so you d
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Just grab `autosave.php` and save it wherever. You will need php 7.4 with the BCMath, curl and JSON extensions. This is pretty common and it shouldn't be a problem.
|
Just grab `autosave.php` and save it wherever. You will need PHP 8.0 with the BCMath, curl and JSON extensions. This is pretty common, and it shouldn't be a problem.
|
||||||
|
|
||||||
Open the file and edit the Firefly III URL and add a Personal Access Token.
|
Open the file and edit the Firefly III URL and add a Personal Access Token.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user