Initial Commit
This commit is contained in:
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
12
.idea/finanzfluss-addon.iml
generated
Normal file
12
.idea/finanzfluss-addon.iml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/finanzfluss-addon.iml" filepath="$PROJECT_DIR$/.idea/finanzfluss-addon.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
1
compile.sh
Executable file
1
compile.sh
Executable file
@@ -0,0 +1 @@
|
||||
cd src && rm -f .../finanzfluss-addon.zip && zip -r ../finanzfluss-addon.zip *
|
||||
BIN
finanzfluss-addon.zip
Normal file
BIN
finanzfluss-addon.zip
Normal file
Binary file not shown.
8
src/background.js
Normal file
8
src/background.js
Normal file
@@ -0,0 +1,8 @@
|
||||
function logURL(requestDetails) {
|
||||
console.log(`Loading: ${requestDetails.url}`);
|
||||
}
|
||||
|
||||
browser.webRequest.onBeforeRequest.addListener(logURL, {
|
||||
urls: ["<all_urls>"],
|
||||
|
||||
});
|
||||
89
src/contentScript.js
Normal file
89
src/contentScript.js
Normal file
@@ -0,0 +1,89 @@
|
||||
// contentScript.js
|
||||
|
||||
const styleElement = document.createElement('style');
|
||||
// language=CSS
|
||||
styleElement.textContent = `
|
||||
.ff-addon-title {
|
||||
margin: 0;
|
||||
font-weight: 600;
|
||||
line-height: 30px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.ff-addon-title-container {
|
||||
margin-bottom: 12px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ff-addon-hr {
|
||||
margin: 0px 0px 16px;
|
||||
border-width: 0px 0px thin;
|
||||
border-style: solid;
|
||||
border-color: rgb(54, 58, 61);
|
||||
}
|
||||
|
||||
.ff-addon-container {
|
||||
margin-bottom: 18px;
|
||||
}`;
|
||||
document.head.appendChild(styleElement);
|
||||
|
||||
const scriptElement = document.createElement('script');
|
||||
// language=JavaScript
|
||||
scriptElement.textContent = `
|
||||
async function doJsonFetch(token, method, url) {
|
||||
const res = await fetch(url,
|
||||
{
|
||||
method: method,
|
||||
credentials: 'same-origin',
|
||||
headers: {
|
||||
"Authorization": "Bearer "+token
|
||||
}
|
||||
})
|
||||
return await res.json()
|
||||
}
|
||||
|
||||
async function onButtonClick() {
|
||||
const loginToken = localStorage.getItem('LOGIN_TOKEN');
|
||||
const jsonToken = loginToken && JSON.parse(loginToken);
|
||||
if (!jsonToken?.access_token) {
|
||||
console.error("No access token found!", jsonToken)
|
||||
return;
|
||||
}
|
||||
const householdBooks = await doJsonFetch(jsonToken?.access_token, "GET", "https://rentablo.de/api/v1/accounts/selectGroups/householdBook?fallbackAccountType[]=02_cash&excludeManuallyMaintainedFallbackAccounts=true")
|
||||
console.log(householdBooks)
|
||||
const accountIds = householdBooks.accountIds
|
||||
const accountIdsQuery = "accountId[]="+accountIds.join("&accountId[]=")
|
||||
const transactions = await doJsonFetch(jsonToken?.access_token, "GET", "https://rentablo.de/api/v1/transactions?"+accountIdsQuery+"&includeAdjustingEntries=false&skipManuallyCreatedTransactions=true&minDate=2024-01-01&maxDate=2024-01-31&order=date+desc&perPage=5000")
|
||||
console.log(transactions)
|
||||
}
|
||||
`;
|
||||
document.head.appendChild(scriptElement);
|
||||
|
||||
let parent
|
||||
const paragraphs = document.getElementsByTagName('p');
|
||||
for (let i = 0; i < paragraphs.length; i++) {
|
||||
if (paragraphs[i].textContent.includes('Transaktionen')) {
|
||||
parent = paragraphs[i].parentNode.parentNode;
|
||||
break; // Stop searching once found
|
||||
}
|
||||
}
|
||||
|
||||
const configDiv = document.getElementById("configDiv") || document.createElement("div")
|
||||
configDiv.remove()
|
||||
// language=HTML
|
||||
configDiv.innerHTML = `
|
||||
<div class='MuiBox-root ff-addon-title-container'>
|
||||
<p class="MuiTypography-root MuiTypography-subtitle1 ff-addon-title">Konfiguriere Deine Zuordnungen</p>
|
||||
</div>
|
||||
<hr class="MuiDivider-root MuiDivider-fullWidth ff-addon-hr"/>
|
||||
<div>
|
||||
<button id="ff-addon-submit" onclick="onButtonClick()">
|
||||
Get all
|
||||
</button>
|
||||
</div>
|
||||
`
|
||||
configDiv.id = "configDiv"
|
||||
configDiv.className = "MuiBox-root ff-addon-container"
|
||||
|
||||
parent.parentNode.insertBefore(configDiv, parent)
|
||||
|
||||
12
src/manifest.json
Normal file
12
src/manifest.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"manifest_version": 3,
|
||||
"name": "Finanzfluss",
|
||||
"version": "1.0",
|
||||
"permissions": ["webRequest", "cookies", "activeTab", "scripting", "https://rentablo.de", "https://www.finanzfluss.de"],
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["<all_urls>"],
|
||||
"js": ["contentScript.js"]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user