Skip navigation.

Comments on Society, Technology, and Life

Posts tagged with "proxomitron"

Proxomitron Filterset Changes

, , ,

I'm posting about the proxomitron again. I have pointed many people towards it for ad-blocking and all around site fixing etc. And for several years, I've maintained an Opera focused filterset based on JD5000's famous set, and later Grypen's version of it. But now that's all changing.

So, what's changed?
  • Well, first and foremost, I've got a full time job, and since I got it the update frequency has gone down. It just takes time I don't really have to muck about with filters, upload them etc.
  • The base filterset just is breaking on many many sites. The needed web expertise and prox expertise to fix that is beyond me. It also seems to be beyond Grypen (great guy, but I never got the feeling he was able to do more than I was with amassing others filters and simple edits). JD5000 has left prox filter writing.
  • I broke down and decided to try the other major filterset - Sidki. And it just works for lots of sites. I haven't fully customized it yet (want to allow redirects), but flash toggle works much better, Google is working without the timeouts for thumbnails etc.
  • My file host, streamload went to crap when they became MediaMax, and I stopped paying. Account closed, so no access to the files anyway.


So, I'm now recommending Sidki's set. He has a great site that explains the install, hosts the files etc.

Go here: http://www.geocities.com/sidki3003/prox.html

Now, it is Firefox focused, but works pretty well in Opera, and the castlecops forum is good for getting help. I'll still be using it, and can provide some assistance, though not necessarily as much as before.

Still waiting for a OSS prox replacement with these sorts of filtersets (privoxy doesn't seem to really do it).

Installer for AutoUpdater for Proxomitron

,

I have to just use IE on SL so I can host these files.

Here's the tentative code for the installer:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.2.0.1
 Author:         jp10558
 Version:        1.1
 Script Function:
Install updater and set scheduled task.

#ce ----------------------------------------------------------------------------
local $answer, $directory, $success
$answer = FileExists("C:\Program Files\proxy\Proxomitron.exe")
If $answer Then
$directory = "C:\Program Files\proxy"
$success = _InstallProxUpdater($directory)
Else
$directory = FileSelectFolder("Cannot find Proxomitron, please browse to the install directory.", "",4)
$success = _InstallProxUpdater($directory)
EndIf
If $success Then
MsgBox(48,"Install Failed!", "The installer was unable to download the necessary files.")
Else
MsgBox(0,"Setting Scheduled Task","Enter the password for the prompted account")
RunWait(@ComSpec & " /c " & 'schtasks /create /sc WEEKLY /TN ProxUpdate /TR "' & $directory & '\ProxUpdate.exe /ST 08:00:00')
$answer = MsgBox(4,"Settings","Do you want to be prompted before an update is installed?")
If $answer = 6 Then
IniWrite($directory & "\version.ini","Version","Auto","0")
Else
IniWrite($directory & "\version.ini","Version","Auto","0")
EndIf
$answer = MsgBox(4,"Install Succeeded","Would you like to run the updater?")
If $answer = 6 Then
Run($directory & "\ProxUpdate.exe",$directory)
Else
EndIf
EndIf

Func _InstallProxUpdater($dir)
local $success, $success1
SplashTextOn("OperaMOD Proxomitron Filterset", "Downloading and Installing Updater.", 250, 40, -1, -1, 0)
$success = InetGet("http://www.mediamax.com/jp10558/Hosted/public/Update/ProxUpdate.exe",$dir & "\ProxUpdate.exe",1)
$success1 = InetGet("http://www.mediamax.com/jp10558/Hosted/public/Update/version.ini", $dir & "\version.ini",1)
SplashOff()
If $success = 0 or $success1 = 0 then
return 1
Else
return 0
EndIf
EndFunc


EXE on MediaMax: Installer

Autoupdater for Proxomitron

EDIT: I've moved hosting back to MediaMax, though it shouldn't matter as you see in the installer in my other blog post.

I'm thinking that with posting the programs on this blog for my filterset, it would be possible to set up an autoupdater (or really from any HTTP file space). The design could be figured out in a week or so and likely up and running in another week. The issue of course is that
a) I don't update the filterset all that often
b) does anyone want one
c) if people wanted this, how did they want it to work?

My thought is a scheduled task that runs once a week or so to check for updates. If found, it would download the updates, and uncompress them over the old files. If desired, I think some management, specifically by moving most of the lists back into the "system" lists and keeping the user lists + some file manipulation with caveats could allow saving user modifications of the blocklists.

The bigger issue I see is the filters themselves. I'm thinking of if there is an easy way to keep userfilters, and I really don't think there is. (Not to say there isn't a way, just not an easy one that I'm aware of.)

I'm thinking about scripting this in AutoIT, and compiling it as an executable that way so everyone doesn't have to have the language installed.

Anyway, feel free to comment, if there is an interest, I'll see about hacking it together.

Ok, well - here's a basic updater that will just do what happens now, it will download the new file and overwrite the old files.

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.2.0.1
 Author:         jp10558
 Version:        1.1.5

 Script Function:
Check for updates of my Proxomitron filterset, and if there are updates, download and install them.

#ce ----------------------------------------------------------------------------


Dim $Version,$Auto,$Website,$answer,$Update
SplashTextOn("OperaMOD Proxomitron Filterset", "Checking for updates....", 250, 30, -1, -1, 0)
$Version = IniRead("version.ini","Version","version","0")
$Auto = IniRead("version.ini", "Version","Auto","1")
$Website = IniRead("version.ini","Version","site","0")


InetGet($Website, "update.ini", 1)
$Update = IniRead("update.ini", "Update", "Update", "NotFound") 
If $Update = $Version Then
SplashOff()
MsgBox(0, "Proxomitron Updater", "There are no updates.")
ElseIf $Update > $Version then
If $Auto = 1 Then
_update()
Else
SplashOff()
$answer = MsgBox(4,"Update Available","Do you want to update to Version " & $Update & "?")
If $answer = 6 Then
_update()
Else
EndIf
EndIf

Else
EndIf

Func _update()
Local $Site
    $Site = IniRead("C:\temp\update.ini", "Update", "Site", "NotFound")
SplashTextOn("OperaMOD Proxomitron Filterset", "Downloading updates....", 250, 30, -1, -1, 0)
InetGet($Site, "proxy.exe",1)
SplashOff()
If ProcessExists("Proxomitron.exe") Then
ProcessClose("Proxomitron.exe")
EndIf
SplashTextOn("OperaMOD Proxomitron Filterset", "Installing updates....", 250, 30, -1, -1, 0)
Runwait("proxy.exe","..\")
FileDelete("proxy.exe")
FileDelete("update.ini")
IniWrite("version.ini","Version","version",$Update)
Run("Proxomitron.exe")
SplashOff()
EndFunc


And here's an exe for that: ProxUpdate.exe

Place that and this ini file version.ini

in your proxomitron top directory. The directory does need to be named proxy like my zipped distribution is.

Anyway, it's very hackish, and I pulled a lot of code from other AutoIT scripts on their forums.

You just put a windows scheduled task to run that exe every X days, and it pulls down the new one and installs it if there. But it does overwrite the old stuff.

So, I hope to do a couple things.

1) Implement a [Settings] section of the ini with an AutoUpdate key, which when set to 1 will do what it would do right now, just go do it, otherwise it will leave a message box up that there is an update, and did you want it to get it.

2) Impliment a progressbar for the download/indicator there is an update and now it's getting it.

From there it kind of depends. If I have time, I'll start work on one of these paths:
Either

1) an installer for the proxomitron set + autoupdater and the schedule setup and an updater for the updater.

or

2) Changing up the set to not use the User lists and then not replace them. Plus seeing about breaking out "user" sections of the blocklists and maintaining them over the update.

The second path has lots of issues, specifically checking that with User-Include-Exclude that no matches are in that AND in the Include-Exclude list. Also, that leads to trying to find a way to just update the filters that have changed/save user filters too. Which looks really difficult to me.

Looks like the first is done, I have another blogpost for the installer... It works with WinXP to install the updater and set a scheduled task to check for updates once a week. You can of course edit that as normal in XP. It's not exactly an installer for proxomitron, though you could just point it at a directory at the same level of where you want proxomitron installed and away it goes. When I get a chance I'll make it more of an installer for proxomitron as well as for just the updater.


Anyway, the above was the easy part. The rest of the programming is bound to be more difficult.

Proxomitron

, , ,

So, I link in my sig, and often suggest you try out Proxomitron, but what is it? How do you use it? Simply put, it is a filtering proxy. It uses regular expressions arranged as filters to do a mass find and replace on HTML pages as they come onto your PC. Groups of filters are called filtersets. There are several maintained filtersets currently, the biggies are Sidki's, and Grypen's. I maintain an Opera focused modification of Grypen's set for forum members - or anyone really.

Get it here: See the last post I've made in the thread below

Watch for updates here: http://my.opera.com/community/forums/topic.dml?id=76301&abc=&page=5&skip=200&show=&perscreen=50

I've figured out that straight links seem to work now to mediamax, even in Opera, so it's ok.

It's pretty simple really, all you do is set it as a proxy for Opera. To do this, go to tools -> preferences, advanced tab, network leaf, and click on proxy servers. In HTTP, put host as localhost and port as 8080. You can chain proxomitron to another proxy, to do so, double click on the tray icon (the green triangle) click proxy, and input the information in this form

host:port

ok out, and hit file -> save. Then that will be setup for you.

One thing is important, lots of things Proxomitron does uses text files called blocklists. They are accessable by right clicking on the tray icon, and selecting edit blockfile. To speed things up, you can add things via the add to blockfile choice.

The big thing is all the files are under the lists subdirectory in Grypen's set, and most of the things you would edit would be in the proxy\Lists\Grypen_Lists\User directory. Backing that up before an update might be a good idea, if you add any sites to a whitelist to allow cookies, or to bypass filters. Even better might be a compare between the old list and the new one. Specifically, look at the allowcookies list, it has what I consider to be sites I want cookies set from, you may want to change that, or clear it alltogether.


I try to update this filterset when I accumulate a few decent changes, but that means updates can be frequent or sporadic. Most updates aren't critical, so just grab a new one when you feel like it.

To update my filterset - just back up any blocklist entries you made (Mostly in User-Include-Exclude and Bypass), turn off proxomitron, and extract the proxy folder from the rar file over your install folder. Shortcuts should work unless you have changed the folder name. Dump in any saved enteries.

One word of caution with User-Include-Exclude. A specific site can only be listed ONCE.

Update (4/28/2006): More and more updates are actually additions to blocklists, so my previous suggestion of just saving the old lists can cause certain changelog entries to not actually happen, as you remove the changes. I highly recommend creating a section in any blocklist that you have edited to keep your edits in so you can easily copy them in on an update, and still get all the updates listed in the changelog.

To do this, just put something like this in:
#My Additions
entry1
entry2
entry3
#End My Additions

and put it at the end of the blocklist for easy copy/paste.

Lastly, feel free to ask questions or for help in the above Proxomitron thread.
December 2009
S M T W T F S
November 2009January 2010
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31