Basically, you make an eventlistener on the scroll wheel and do document.getElementsByClassName('promoted-css-class-name'). Loop over the array of elements found and set the element style to 'display:none' for every element found every time you scroll.
Not the most efficient approach, but effective!
In my experience, the vast majority are time-limited movie accounts.
Here’s my Block List. Not sure why it didn’t update for two months, maybe it doesn’t work anymore:
https://blocktogether.org/show-blocks/BrCdgyZpXmLQ25akOwtgfR...
Mine is 100% (I think) from blocking ads, if you want a second source: https://blocktogether.org/show-blocks/njFjyOn40oKxRW8XJLmN70...
(it's also updated 2 days ago)
The change I've made is that I set the display of the promoted tweets to none, rather than setting their opacity to 0: article.setAttribute('style', 'display: none');