Files
scan-receipts/scripts/test_hints.mjs
Timo 84b9987c49 Add full application: receipt scanning, auth, billing, and account deletion
Brings the working codebase (Next.js app, auth system, Stripe billing,
Docker/deploy config, tests, docs) into version control on top of the
placeholder initial commit, and adds account self-deletion (Danger Zone
in Settings, password + typed-email confirmation, cascading DB cleanup,
Stripe cancellation) per GDPR right-to-erasure.

Excludes local build caches, node_modules, and internal agent scratch
files; .gitignore hardened to keep those out going forward.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 20:59:04 +02:00

68 lines
1.7 KiB
JavaScript

import https from 'https';
const keywords = [
// German Core
'receipt scanner',
'beleg scanner',
'belege digitalisieren',
'rechnung scanner',
'kassenbon scanner',
'quittung scanner',
'spesen app',
'buchhaltung scanner',
'datev',
'datev scanner',
'belegmanager',
'haushaltsbuch',
'ausgaben tracker',
'steuer belege',
// English Core
'receipt to excel',
'receipt scanner to excel',
'expense tracker',
'receipt keeper',
'invoice scanner',
'smart receipts',
'receipts',
'shoeboxed',
'expensify',
'camscanner',
'genius scan'
];
function fetchHints(term, storefront = '143443') { // 143443 = Germany, 143441 = US
return new Promise((resolve) => {
const url = `https://search.itunes.apple.com/WebObjects/MZSearchHints.woa/wa/hints?clientApplication=Software&term=${encodeURIComponent(term)}`;
https.get(url, {
headers: {
'User-Agent': 'AppStore/3.0 (iOS; 16.0)',
'X-Apple-Store-Front': `${storefront}-1,29`
}
}, (res) => {
let data = '';
res.on('data', chunk => data += chunk);
res.on('end', () => {
try {
const json = JSON.parse(data);
resolve(json);
} catch (e) {
resolve(null);
}
});
}).on('error', () => resolve(null));
});
}
async function test() {
console.log('Testing hints:');
for (const kw of ['beleg', 'kassenbon', 'receipt', 'expense', 'datev', 'spesen', 'rechnung']) {
const hintsDE = await fetchHints(kw, '143443');
console.log(`DE Hints for "${kw}":`, hintsDE?.hints?.map(h => h.term));
const hintsUS = await fetchHints(kw, '143441');
console.log(`US Hints for "${kw}":`, hintsUS?.hints?.map(h => h.term));
}
}
test();