Commit Graph

378 Commits

Author SHA1 Message Date
Mark Veidemanis 539d6f1fbb
Use the Python logger instead of the Twisted one 2022-07-21 13:44:50 +01:00
Mark Veidemanis 80c696ef73
Add docstrings in Nordigen functions 2022-07-21 13:44:48 +01:00
Mark Veidemanis cb4dbe18f6
Remove fail argument in TrueLayer 2022-07-21 13:44:46 +01:00
Mark Veidemanis 4033496866
Remove leftover files 2022-07-21 13:44:44 +01:00
Mark Veidemanis 50c71703fd
Move IRC, commands and notify classes into a UX class 2022-07-21 13:44:43 +01:00
Mark Veidemanis 2423e4a066
Move sinks into their own class 2022-07-21 13:44:41 +01:00
Mark Veidemanis 2a8c56ead5
Remove references to Revolut in Transactions 2022-07-21 13:44:39 +01:00
Mark Veidemanis 971a6733a9
Remove debugging code and loop constructor 2022-07-21 13:44:37 +01:00
Mark Veidemanis 053293dfee
Fix Agora tests 2022-07-21 13:44:36 +01:00
Mark Veidemanis 2266300064
Remove calls to Revolut 2022-07-21 13:44:34 +01:00
Mark Veidemanis b53fbfc905
Fix TrueLayer 2022-07-21 13:44:32 +01:00
Mark Veidemanis 88e87e53d5
Re-enable Nordigen 2022-07-21 13:44:30 +01:00
Mark Veidemanis 8ab915fa65
Implement signin command for TrueLayer 2022-07-21 13:44:29 +01:00
Mark Veidemanis cbb81cec81
Create proper authcode flow for TrueLayer 2022-07-21 13:44:25 +01:00
Mark Veidemanis 6879d5040e
Fix transactions tests 2022-07-21 13:44:23 +01:00
Mark Veidemanis 3bf2e65cd7
Refactor initialisation and add docstrings to util module 2022-07-21 13:44:22 +01:00
Mark Veidemanis cdf99641ba
Implement getting TrueLayer access tokens 2022-07-21 13:44:20 +01:00
Mark Veidemanis a40423af8c
Begin implementing TrueLayer API 2022-07-21 13:44:19 +01:00
Mark Veidemanis ded27b9842
Begin implementing Nordigen API 2022-07-21 13:44:18 +01:00
Mark Veidemanis b9968612c8
Begin implementing Fidor API 2022-07-21 13:44:17 +01:00
Mark Veidemanis 5688c8adb5
Begin implementing Yapily API 2022-07-21 13:44:16 +01:00
Mark Veidemanis 4bcd2ddeff
Fix indentation while setting ES endpoint in Transactions 2022-07-21 13:44:15 +01:00
Mark Veidemanis fe643fc407
Simplify and refactor initialisation code 2022-07-21 13:44:14 +01:00
Mark Veidemanis f1cb463682
Fix errors and don't print ES logging 2022-07-21 13:44:13 +01:00
Mark Veidemanis 3ff4d512a4
Store cheat output in ES 2022-07-21 13:44:13 +01:00
Mark Veidemanis 9ef7f952f7
Create boilerplate money tests 2022-07-21 13:44:12 +01:00
Mark Veidemanis 6f9cf5cd01
Remove some debugging code from transactions tests 2022-07-21 13:44:11 +01:00
Mark Veidemanis c17e311f7e
Move get_profit to money 2022-07-21 13:44:10 +01:00
Mark Veidemanis 6de9c4d564
Fix reference to get_profit in commands 2022-07-21 13:44:09 +01:00
Mark Veidemanis ef5824892b
Simplify Ctrl+C signal handling 2022-07-21 13:44:08 +01:00
Mark Veidemanis d261298bf7
Write various transaction test cases 2022-07-21 13:44:07 +01:00
Mark Veidemanis 7599911279
Fix how min and max are used in transactions 2022-07-21 13:44:06 +01:00
Mark Veidemanis 3fd656e1df
Begin transactions tests 2022-07-21 13:44:05 +01:00
Mark Veidemanis 2e83516b19
Re-enable withdrawing upon fund release 2022-07-21 13:44:04 +01:00
Mark Veidemanis e8a6f55ed1
Move create_distribution_list to Markets library 2022-07-21 13:44:03 +01:00
Mark Veidemanis b6a5a2f96d
Move to_usd to Money library 2022-07-21 13:44:02 +01:00
Mark Veidemanis 859c1d20ef
Move rates and margin functions into Money library 2022-07-21 13:44:01 +01:00
Mark Veidemanis 74522342f7
Move lookup rates into new Money library 2022-07-21 13:44:00 +01:00
Mark Veidemanis c15492f161
Fix references to last_online_recent in Agora tests 2022-07-21 13:43:59 +01:00
Mark Veidemanis 896318982f
Move some functions to a util class from Agora 2022-07-21 13:43:59 +01:00
Mark Veidemanis 74d03e8180
Make ES optional and properly calculate open trade volume 2022-07-21 13:43:58 +01:00
Mark Veidemanis 3e769e8d33
Convert amount to float before adding in total calculation 2022-07-21 13:43:57 +01:00
Mark Veidemanis fc103e5bfa
Add check in Agora for validating ad response 2022-07-21 13:43:56 +01:00
Mark Veidemanis 9a3ddf609e
Add recurring call for getting total profit 2022-07-21 13:43:55 +01:00
Mark Veidemanis 3fdb728e04
Run balance checks intermittently 2022-07-21 13:43:54 +01:00
Mark Veidemanis aad966feff
Handle trying to stop the bot when threads are running 2022-07-21 13:43:53 +01:00
Mark Veidemanis 96168d8d6f
Differentiate between trades+profit and profit in ES 2022-07-21 13:43:52 +01:00
Mark Veidemanis bc0a60a601
Add a xtype parameter for future ES expansion 2022-07-21 13:43:51 +01:00
Mark Veidemanis 3111783f69
Log more things into ES 2022-07-21 13:43:50 +01:00
Mark Veidemanis f4b75e4b5b
Disable TLS warning for ES 2022-07-21 13:43:49 +01:00
Mark Veidemanis ccfb4d65bd
Add certs folder to gitignore 2022-07-21 13:43:48 +01:00
Mark Veidemanis a46f6ed3f3
Handle another kind of exception 2022-07-21 13:43:47 +01:00
Mark Veidemanis d9f55ce497
Add provider to trade information 2022-07-21 13:43:46 +01:00
Mark Veidemanis b88f49b6ae
Add commands to check only profit 2022-07-21 13:43:46 +01:00
Mark Veidemanis 9a50865480
Disable automatic withdrawals 2022-07-21 13:43:45 +01:00
Mark Veidemanis 1dbdb3acc7
Add commands to get various totals 2022-07-21 13:43:44 +01:00
Mark Veidemanis 2fa156c095
Add code formatting checks in runtest.sh 2022-07-21 13:43:43 +01:00
Mark Veidemanis 6e7df83427
Add script to run tests 2022-07-21 13:43:42 +01:00
Mark Veidemanis 5d5b818b9a
Write docstrings for Agora and Transactions classes 2022-07-21 13:43:41 +01:00
Mark Veidemanis 91f457c82d
Remove debugging code 2022-07-21 13:43:40 +01:00
Mark Veidemanis 8782aeaead
Fix Agora tests 2022-07-21 13:43:39 +01:00
Mark Veidemanis 5c07112ca7
Fix rounding bug in cheat 2022-07-21 13:43:38 +01:00
Mark Veidemanis 6aa765183e
Fix notification priorities 2022-07-21 13:43:37 +01:00
Mark Veidemanis 5dcd33433d
Fix transaction handling for non-Revolut trades 2022-07-21 13:43:36 +01:00
Mark Veidemanis 372e246659
Set priorities for trade and withdrawal notifications 2022-07-21 13:43:36 +01:00
Mark Veidemanis e91916b18b
Add extra debugging in transactions 2022-07-21 13:43:35 +01:00
Mark Veidemanis d000f75ca2
Fix TX update logic in Transactions 2022-07-21 13:43:34 +01:00
Mark Veidemanis e88a6d462d
Remove all cheat output 2022-07-21 13:43:33 +01:00
Mark Veidemanis 3c1cbf1d94
Remove more cheat debugging and useless output 2022-07-21 13:43:32 +01:00
Mark Veidemanis b3e71f84d1
Remove some debug output 2022-07-21 13:43:31 +01:00
Mark Veidemanis cd10deaa71
Account trades for withdrawal calculation and fix cheat for multiple providers 2022-07-21 13:43:30 +01:00
Mark Veidemanis aa4b623ae6
Fix pubads command after ads refactor 2022-07-21 13:43:29 +01:00
Mark Veidemanis 80916648e3
Fix the remainder of the tests 2022-07-21 13:43:28 +01:00
Mark Veidemanis 32a24b3e43
Create more Agora tests 2022-07-21 13:43:27 +01:00
Mark Veidemanis 182e2ae8ba
Remove debugging code 2022-07-21 13:43:26 +01:00
Mark Veidemanis 0b9cd93369
Implement accounting for open trade value as part of total remaining 2022-07-21 13:43:25 +01:00
Mark Veidemanis 899a6e60e3
Fix minor bugs with the cheat system 2022-07-21 13:43:25 +01:00
Mark Veidemanis 5c10d5f044
Increase decimal places in rate 2022-07-21 13:43:24 +01:00
Mark Veidemanis 06e8662c21
Use GBP details when currency is GBP, without checking country 2022-07-21 13:43:23 +01:00
Mark Veidemanis 9d04db7205
Finish implementation and tests for the cheat system 2022-07-21 13:43:22 +01:00
Mark Veidemanis 4414132674
Add some Agora tests 2022-07-21 13:43:21 +01:00
Mark Veidemanis db859e803f
Improve class passing and refactor 2022-07-21 13:43:20 +01:00
Mark Veidemanis f6a67abd4f
Fix dist function 2022-07-21 13:43:19 +01:00
Mark Veidemanis eaa4528634
Implement OTP and fix getting public ads 2022-07-21 13:43:18 +01:00
Mark Veidemanis a9adc14577
Fix AgoraDesk PaymentMethodDetail specification 2022-07-21 13:43:16 +01:00
Mark Veidemanis baaf32a2e0
Fix redist command 2022-07-21 13:43:15 +01:00
Mark Veidemanis 3e1990388f
Remove old command and add redist command 2022-07-21 13:43:14 +01:00
Mark Veidemanis 81e3232456
Implement editing ads and distributing providers 2022-07-21 13:43:13 +01:00
Mark Veidemanis c3ff7d6e76
Fix autoprice bugs and re-enable withdrawing on release 2022-07-21 13:43:12 +01:00
Mark Veidemanis cdc80b6896
Implement remaining command 2022-07-21 13:43:11 +01:00
Mark Veidemanis 50a00a7798
Fix bug in IRC with zero length messages 2022-07-21 13:43:10 +01:00
Mark Veidemanis bac6f26311
Make ad listing getters understand providers 2022-07-21 13:43:09 +01:00
Mark Veidemanis 61b064635d
Implement changing the online_provider when creating an ad 2022-07-21 13:43:08 +01:00
Mark Veidemanis d2d1c4573f
Disable withdrawal on release and don't lowball people 2022-07-21 13:43:07 +01:00
Mark Veidemanis 2db063ab89
Add boilerplate code for topup notifications 2022-07-21 13:43:06 +01:00
Mark Veidemanis 365fc71f64
Add the notify module 2022-07-21 13:43:05 +01:00
Mark Veidemanis b91431b3ba
Improve cheat system with asset turns 2022-07-21 13:43:04 +01:00
Mark Veidemanis 4a9e611651
Implement updating ads with exponential backoff 2022-07-21 13:43:03 +01:00
Mark Veidemanis f7ad74c510
Improve Agora error handling 2022-07-21 13:43:02 +01:00
Mark Veidemanis 72afa1b25b
Handle Agora library exceptions properly 2022-07-21 13:43:01 +01:00
Mark Veidemanis 965bba8d15
Don't make unnecessary calls to update ad equations 2022-07-21 13:43:00 +01:00
Mark Veidemanis b60ae03699
Add extra checks around APIs 2022-07-21 13:42:59 +01:00
Mark Veidemanis f906478d45
Fix another dash bug 2022-07-21 13:42:59 +01:00
Mark Veidemanis 9352956f76
Implement converting all Revolut accounts to one currency 2022-07-21 13:42:58 +01:00
Mark Veidemanis 34f5aa97ed
Add more error handling to AgoraDesk library 2022-07-21 13:42:57 +01:00
Mark Veidemanis a4ae7da715
Nag on IRC if there's not enough in the XMR wallet to withdraw 2022-07-21 13:42:56 +01:00
Mark Veidemanis 7b5290a1e0
Implement withdrawing to wallets 2022-07-21 13:42:55 +01:00
Mark Veidemanis 49e02ce549
Move totals code to transactions 2022-07-21 13:42:54 +01:00
Mark Veidemanis f54f433265
Implement detecting Revolut callback updates 2022-07-21 13:42:53 +01:00
Mark Veidemanis d6d69f95ab
Don't print the access/refresh tokens 2022-07-21 13:42:52 +01:00
Mark Veidemanis 77033c3f09
Ignore card and negative transactions 2022-07-21 13:42:51 +01:00
Mark Veidemanis c28879c0e4
Change help text to clarify asset 2022-07-21 13:42:51 +01:00
Mark Veidemanis 8092837b37
Separate out the autoprice system for XMR and BTC 2022-07-21 13:42:50 +01:00
Mark Veidemanis 483f893ffb
Add more checks on getting messages 2022-07-21 13:42:49 +01:00
Mark Veidemanis 0cd8c0b358
Properly handle ad substitutions 2022-07-21 13:42:48 +01:00
Mark Veidemanis e9ecd5fb30
Fix posting BTC ads 2022-07-21 13:42:47 +01:00
Mark Veidemanis d1cfa74593
Fix BTC aspects of commands 2022-07-21 13:42:46 +01:00
Mark Veidemanis 3632eea5a6
Make everything work with BTC 2022-07-21 13:42:44 +01:00
Mark Veidemanis bb879508ed
Update release URL getter to understand BTC 2022-07-21 13:42:43 +01:00
Mark Veidemanis b2b669d57d
Update dashboard hook to understand BTC 2022-07-21 13:42:42 +01:00
Mark Veidemanis bb1734142d
Update dashboard getter to understand BTC 2022-07-21 13:42:41 +01:00
Mark Veidemanis fcd34a11c2
Add extra check in dashboard 2022-07-21 13:42:41 +01:00
Mark Veidemanis 3f88ab3727
Format the output from releasing funds nicer 2022-07-21 13:42:40 +01:00
Mark Veidemanis de232b1847
Implement getting XMR/BTC rates and total balance 2022-07-21 13:42:39 +01:00
Mark Veidemanis 26bbe93dd2
Run autoprice in thread 2022-07-21 13:42:38 +01:00
Mark Veidemanis 0f3dba2b06
Reimplement autoprice function better 2022-07-21 13:42:37 +01:00
Mark Veidemanis f3df9283db
Add minimum check to Agora autoprice 2022-07-21 13:42:36 +01:00
Mark Veidemanis 37aad77b5d
Make cheating configurable 2022-07-21 13:42:35 +01:00
Mark Veidemanis 023168851a
Schedule running cheat 2022-07-21 13:42:34 +01:00
Mark Veidemanis 057448c831
Fix cheating logic 2022-07-21 13:42:33 +01:00
Mark Veidemanis 14b0054339
Add extra checks for getting messages 2022-07-21 13:42:33 +01:00
Mark Veidemanis 244e1f7b7b
Fix trades command 2022-07-21 13:42:32 +01:00
Mark Veidemanis 5786ef3482
Improve market cheating algorithm 2022-07-21 13:42:31 +01:00
Mark Veidemanis 764876801d
Implement cheating the price market 2022-07-21 13:42:30 +01:00
Mark Veidemanis 7bb1931e5e
Inline the AgoraDesk library 2022-07-21 13:42:28 +01:00
Mark Veidemanis b0c401f36f
Add more error handling to Agora API calls 2022-07-21 13:42:26 +01:00
Mark Veidemanis f6da15decd
Customise messages and add extra error checking 2022-07-21 13:42:25 +01:00
Mark Veidemanis 707f23f2e3
Uncomment release funds code 2022-07-21 13:42:24 +01:00
Mark Veidemanis faa71dc2ed
Add more debugging 2022-01-01 20:27:30 +00:00
Mark Veidemanis 4053dce048
Fix alt reference implementation 2022-01-01 20:22:53 +00:00
Mark Veidemanis bc68bcd74f
Use the right variable to check amount 2022-01-01 20:01:01 +00:00
Mark Veidemanis 5ea1c26a84
Don't check non-exact values if we looked up without reference 2022-01-01 19:33:15 +00:00
Mark Veidemanis 19724eac77
Implement looking up trade by partial reference message or amount/currency 2022-01-01 19:20:20 +00:00
Mark Veidemanis 1227a16b72
Implement helper function to send messages on IRC 2022-01-01 16:39:36 +00:00
Mark Veidemanis 86271891a7
Fix and simplify dashboard hooks 2022-01-01 16:34:32 +00:00
Mark Veidemanis 05045c2a8e
Simplify dashboard 2021-12-31 18:21:56 +00:00
Mark Veidemanis b7dd850c61
Fix commands 2021-12-31 18:21:27 +00:00
Mark Veidemanis 520c0aa253
Implement help for commands 2021-12-31 00:51:43 +00:00
Mark Veidemanis 5649909385
Implement smarter ad management 2021-12-31 00:39:52 +00:00
Mark Veidemanis 21fce0e685
Reimplement messaging and implement bruteforce 2021-12-30 22:41:28 +00:00
Mark Veidemanis 1ee39989af
Post a nice message when releasing funds 2021-12-30 22:41:03 +00:00
Mark Veidemanis d060120c9b
Implement nuke command to remove all ads 2021-12-30 14:15:34 +00:00
Mark Veidemanis 80f0d4a5fd
Implement recursively getting ads 2021-12-30 14:15:24 +00:00
Mark Veidemanis 88d3cfba30
Add debug code in Transactions 2021-12-30 14:15:07 +00:00
Mark Veidemanis 44d997ea20
Add release funds command 2021-12-29 19:21:27 +00:00
Mark Veidemanis 3bcebb9d61
Add hook to release funds 2021-12-29 19:21:18 +00:00
Mark Veidemanis bdd7921bc0
Implement releasing funds 2021-12-29 19:21:05 +00:00
Mark Veidemanis d1252a1d42
Fix Transactions error messages 2021-12-29 18:52:27 +00:00
Mark Veidemanis 712a144467
Fix race conditions in cleanup 2021-12-29 18:40:44 +00:00
Mark Veidemanis 6418c5ecca
Add some comments to Transactions 2021-12-29 15:32:38 +00:00
Mark Veidemanis 4ff6875638
Allow using TX or reference for payment reference 2021-12-29 15:26:23 +00:00
Mark Veidemanis 23372bd491
Fix log message 2021-12-29 15:05:21 +00:00
Mark Veidemanis c7f4230a91
Fix getting new messages 2021-12-29 15:04:17 +00:00
Mark Veidemanis be46f79ef7
Archive old reference IDs 2021-12-29 15:03:47 +00:00
Mark Veidemanis b1fa6182ef
Fix some commands 2021-12-29 14:49:29 +00:00
Mark Veidemanis b160ac10e3
Use reference instead of transaction ID 2021-12-29 14:41:05 +00:00
Mark Veidemanis bf4381caa6
Implement looking up references 2021-12-29 14:32:06 +00:00
Mark Veidemanis 64bf5a77ee
Handle dashbord smarter and poll messages 2021-12-29 14:25:07 +00:00
Mark Veidemanis d5c272d3f9
Add some docstrings 2021-12-29 00:04:24 +00:00
Mark Veidemanis 82b70991a4
Implement the min/max acceptable margin checks 2021-12-28 23:58:00 +00:00
Mark Veidemanis 6743bd5106
Add commands to manage references 2021-12-28 23:57:25 +00:00
Mark Veidemanis 70682d1a9c
Add function to get acceptable margins 2021-12-28 23:56:32 +00:00
Mark Veidemanis cd6e19a38a
Fix incoming transaction matching 2021-12-28 17:47:07 +00:00
Mark Veidemanis f0b31ac17d
Implement more transaction handling 2021-12-28 15:29:15 +00:00
Mark Veidemanis 906048a797
Add message command 2021-12-28 15:28:56 +00:00
Mark Veidemanis 1699dc5593
Pass through Transactions to Agora 2021-12-28 15:28:45 +00:00
Mark Veidemanis 7fd784b83b
Hook in Transactions to incoming trades 2021-12-28 15:28:28 +00:00
Mark Veidemanis 535f890554
Add error handling in commands 2021-12-28 14:10:05 +00:00
Mark Veidemanis 3340b6d4da
Additional error handling 2021-12-28 14:09:33 +00:00
Mark Veidemanis f28e42c42f
Add release URLs and squish bug 2021-12-28 13:42:31 +00:00
Mark Veidemanis 0223b2ea7a
Add release_url command 2021-12-28 13:41:48 +00:00
Mark Veidemanis 266a294e73
Remove fields from transactions 2021-12-28 13:41:36 +00:00
Mark Veidemanis f296c33d1c
Amend shebang 2021-12-28 12:52:19 +00:00
Mark Veidemanis 15096be553
Implement class-based IRC commands 2021-12-28 12:50:19 +00:00
Mark Veidemanis e2099b1c82
Better error handling in total command 2021-12-28 11:57:18 +00:00
Mark Veidemanis 9991813209
Post message to IRC if there are no trades/messages 2021-12-28 11:31:15 +00:00
Mark Veidemanis 2f274390a8
Implement getting total USD value of Revolut account 2021-12-28 11:26:51 +00:00
Mark Veidemanis 45abcfc7dc
Post new trades and messages to the channel 2021-12-28 01:00:02 +00:00
Mark Veidemanis 3de4f16622
Format return from creating ad 2021-12-27 22:09:35 +00:00
Mark Veidemanis aa8041e190
Add prefix for automatic trade notifications 2021-12-27 22:00:02 +00:00
Mark Veidemanis 5c75dfeeee
Minor tweaks to Redis config and comments 2021-12-27 21:46:53 +00:00
Mark Veidemanis 2cdc43e1cd
Add docstrings in Revolut 2021-12-27 21:41:35 +00:00
Mark Veidemanis 987e8545f5
Add more docstrings to Agora code 2021-12-27 21:33:49 +00:00
Mark Veidemanis 61d48b9bfe
Add more information in transactions docstrings 2021-12-27 21:28:49 +00:00
Mark Veidemanis 7c8f77df40
Add more detail in IRC docstrings 2021-12-27 21:27:41 +00:00
Mark Veidemanis 661582a97d
Add return types in transactions docstrings 2021-12-27 21:20:15 +00:00
Mark Veidemanis 5350a2e44c
Document IRC code 2021-12-27 21:19:58 +00:00
Mark Veidemanis 6339e88385
Document IRC and cleanup 2021-12-27 21:13:13 +00:00
Mark Veidemanis b880e9763f
Strip out API parts and pass through objects smarter 2021-12-27 21:12:54 +00:00
Mark Veidemanis 83090ff6a5
Move function from IRC into transactions 2021-12-27 21:04:57 +00:00