Commit Graph

348 Commits

Author SHA1 Message Date
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
Mark Veidemanis 5d21953199
Add docstrings to transactions functions 2021-12-27 21:02:38 +00:00
Mark Veidemanis 66b138b324
Pass through objects smarter 2021-12-27 20:59:24 +00:00
Mark Veidemanis 8139845755
Poll and post trades in the channel 2021-12-27 19:30:03 +00:00
Mark Veidemanis 20b0aef97d
Format the return from AgoraDesk better 2021-12-27 19:03:01 +00:00
Mark Veidemanis ef9e958467
Be smarter about printing out information to IRC 2021-12-27 19:02:31 +00:00
Mark Veidemanis 823c495143
Pass agora through to IRC bot 2021-12-27 13:50:32 +00:00
Mark Veidemanis 3c80ead036
Handle there not being a webhook set up 2021-12-26 23:41:29 +00:00
Mark Veidemanis d0a5782449
Correct price formula 2021-12-26 23:12:02 +00:00
Mark Veidemanis 3c7a6685b4
Exit if initial token request fails for Revolut 2021-12-26 23:11:48 +00:00
Mark Veidemanis 0c9fadbdf6
Import the right JSON exception 2021-12-26 21:38:50 +00:00
Mark Veidemanis 37b97495da
Use AgoraDesk library instead of requests 2021-12-26 21:36:25 +00:00
Mark Veidemanis 18aecc216a
Check before setting up Revolut callback URL 2021-12-24 17:36:10 +00:00
Mark Veidemanis 480e1298cd
Correct IRC certificate file 2021-12-24 17:35:41 +00:00
Mark Veidemanis 48b1871cf8
Rename Agora trades function 2021-12-24 17:35:17 +00:00
Mark Veidemanis 7b59a28c4d
Add some API endpoints 2021-12-24 17:27:36 +00:00
Mark Veidemanis 9ba5721872
Implement Revolut refresh token retrieval 2021-12-24 17:26:54 +00:00
Mark Veidemanis ff91b0ac81
Begin implementing Agora ad calls 2021-12-24 17:26:31 +00:00
Mark Veidemanis ad1fb040c4
Simplify settings handling 2021-12-24 17:25:36 +00:00
Mark Veidemanis bb7bc6498c
Add IRC module 2021-12-24 17:24:45 +00:00
Mark Veidemanis 50a777cecb
Implement more Agora functions 2021-12-24 02:23:38 +00:00
Mark Veidemanis 2601d4a2e4
Implement configuration parser 2021-12-24 02:21:58 +00:00
Mark Veidemanis 0aa1b3d58d
Add Redis functions 2021-12-24 02:20:55 +00:00
Mark Veidemanis b6fe0b433d
Handle invalid JSON in Revolut 2021-12-23 22:57:51 +00:00
Mark Veidemanis 04c20b6b69
Implement looking up transactions 2021-12-23 19:09:16 +00:00
Mark Veidemanis a584154c2f
Implement redis and store transaction data 2021-12-23 18:46:39 +00:00
Mark Veidemanis 57e5616531
Move code into classes 2021-12-23 16:59:35 +00:00
Mark Veidemanis ffd035dfbf
Switch from Flask to Klein 2021-12-23 14:46:51 +00:00
Mark Veidemanis 78a3419013
Write Flask app 2021-12-23 00:36:15 +00:00