bellingcat / auto-archiver

Automatically archive links to videos, images, and social media content from Google Sheets (and more).
https://pypi.org/project/auto-archiver/
MIT License
581 stars 61 forks source link

Auto Tweet the Hash #90

Closed djhmateer closed 7 months ago

djhmateer commented 1 year ago

After every successful archive, do a Tweet with the Hash so that we can prove that on this day the picture/video was as it is.

Need to translate this older code to the new codebase. Use enricher probably.

https://github.com/djhmateer/auto-archiver/blob/main/auto_archive.py#L183

This code uses a SQL database to act as a queue, and another service runs every x minutes to poll the queue to see if anything should be tweeted. Checks the NextTweetTime so as not to bombard the API. Been working for a few months on the free Twitter API which gives 1500 Tweets per month.

msramalho commented 1 year ago

Thanks for sharing that, that's something we've thought of but have some reservations about, for example: what it the twitter account gets blocked and tweets become hidden, Twitter (or X) is not a trustworthy system even though it may achieve this goal to some extent.

Still, my suggestion is to implement a new Database which just writes the tweet out (maybe it can have an internal queue file for the rate-limit/failed cases). That should be easy to have as part of the current architecture without a lot of hassle.

We will keep looking into this topic more broadly too though.

msramalho commented 1 year ago

Still feel having this will be a good addition even if we don't advise anyone to solely trust Twitter.

Coedice commented 1 year ago

@msramalho This could be a genuinely good use-case for a blockchain. If the hash is sent to an Ethereum smart contract, that would provide proof of when the data was obtained. It could be a bit over-engineered, and would require the user to have an Ethereum wallet (and pay), but it could be a decent alternative to trusting Twitter for those who want truely rock-solid proof.

djhmateer commented 1 year ago

@Coedice - this does sound interesting. https://ethereum.org/en/developers/docs/smart-contracts/ something around this area? Not something I know about!

Coedice commented 1 year ago

@djhmateer Yes, in fact I found this smart contract that has already been written, and could be used for this purpose: https://github.com/ramyhardan/proof-of-existence

msramalho commented 1 year ago

Indeed both of these solutions address the same issue successfully, I'd be happy to see both implemented and each user being able to choose which one makes the most sense to their use case.

Another quite impactful solution is a service like https://enigio.com/traceoriginal/ which actually uses those 2 and other solutions under the hood.

clearly connected to https://github.com/bellingcat/auto-archiver/issues/91

msramalho commented 9 months ago

see #https://github.com/bellingcat/auto-archiver/commit/27281b22c223f9218d2fefe7f18cd0b0d6a057fa going to be merged soon into 0.8.2, solving #91

msramalho commented 7 months ago

closing now due to inactivity.