Fighting Spam with Browser Automation

Browser Automation is awesome!, I have been working on tones of projects recently, all using browser automation for part or all of the projects' needs. From simple data mining of websites which have no API, to reporting spam, which causes a client of mine to loose some business. Specifically I am stocked about the Anti-SPAM project, as it is the most noble of my projects.

Fighting SPAM, with Bots!

Basically, I wrote a CLI Python application, which uses Selenium to control a browser. It receives a list of Account Ids for OfferUp which are SPAM. Using this list of accounts, it will log in, and then proceed to find accounts from the ID supplied, and report their posts, and then their account. In a single day using this method, I have been able to get about 9 accounts recognized as SPAM, by OfferUp. I opened a Support Ticket and informed OfferUp that I would be spending a significant amount of time reporting SPAM in my area, because I am tired of seeing nothing but SPAM. I did not, however, inform them that I was going to write a python script, to do this for me. (I don't think they will mind much, or I hope they won't)

How does it work?

It is super simple at the moment. I have a CSV file containing a list of IDs which need to be reported. In Python when the script loads, I read that file into an array. Then using Selenium, I load up Firefox, and log into my OfferUp Account. Once the Script has completed the Login, It navigates to the first SPAM Profile, reading in the URLs of the Offers on the account. Then visiting each offer and flagging it. Finally returning to the SPAM profile and flagging the profile also. It was super simple, and when I launch offerup now, it looks so much cleaner :)

How I plan to utilize this in the future.

Now seeing how effective this is, I am planning a project, to "crowd source" spam detection and removal. I am going to build a Chrome, & Firefox extension, which will allow users to easily report spam on any site. If possible, I will write an automation which continues to report the spam to that service, until it is removed. I know this sounds a little spammy itself, but it works. It keeps our online communities cleaner.

Read More

How to catch X11 Window Close Event

2018-01-06 01:25 Pascal, X11, XServer, XLib, Window Close Event

Working directly with X, Xlib, XUtils, and so on, is actually a lot more pleasant than I was lead to believe. However there are a couple of annoying bits. One of which, is handling events generated by XServer, and the WindowManager (WM) differently. Since the Chrome, or elements around your application, are supplied by the WM, you will need to listen to a message from it, and not a standard EventType from XServer.

Read More

Pascal's biggest problem. The lack of libraries

2018-01-05 17:11 Pascal, Programming, Food for Thought

While working on my Google replacement system, I ran into a lot of issues last night, where libraries or code doesn't exist for me to utilize. I had to start writing it myself or take libraries from C and convert them or take libraries written in Delphi Pascal and operating system. It reminded me of when I first started working with Pascal, and why I eventually started coding more and more in C.

Read More

2018 New Year's Resolutions & Objectives (SMART Goals)

2018-01-02 05:32 New Year, Objectives, Goals, Annual Goals

Every year, Millions of people are determined in one way or another, to make a positive change in their lives; myself included. However this year,  I have less of a Resolution theme and more of an Objective like SMART Goals (Specific Measurable Aforethought Realistic Time-bound). This is not the typical Corporate SMART or ASMART goals that management gives you, tying it to your Merit Increase raise at the end of the year. These goals are for me and my life, to make me more independent, efficient/productive, knowledgeable, and skillful. These goals will each have milestones, and progress reviews each month. I intend to write about them each here on my blog, at least once per month, in my progress review. Without further ado, here are my Objectives.

Read More

New Product Page Layout, for ProSoft

I have recently designed a new website, that is launching soon at work, and wanted to share the new layout. I like it, and think it will be really friendly to search engines. All in all, I think it will be a good success. This is a really long page, and this specific product, doesn't show all of the sections available. It is missing the Videos, Customer Success, Certifications, and others.

Read More