Recent comments

Titlacahuan wrote

That is such a brilliant strategic move that shows long-term vision by Los Viagras. Such makeshift networking infrastructure may be the only viable way to resist the dominance of big ISPs by the ordinary population. Many a rebellion (see Emiliano Zapata Salazar) have started with small steps like this one.

The article is clearly biased against Los Viagras and I am clearly biased in their favor, but there are two sides to each story. Just like 20 years ago the US government was labeling anyone they didn't like "terrorists" these days Latin-American governments throw the word "cartel" left and right.

1

noptic wrote

This is why a parallel economy is being built out right now. You will be able to bypass their systems and join other freedom loving people who are prospering.

Learn to use Monero, it is a 100% private digital payment system that is just like cash, no one can spy on your transactions. (http://site.get-monero.i2p/)

https://moneromarket.io/ is a site where you can buy and sell goods using Monero.

2

not_bob wrote (edited )

In the near future I plan to be writing more little toys like this. Then plan is to have a toys.notbob.i2p site with a list of useful things.

Here is code what what I have running. You can see an example of it running here http://5gn3ca4z4occksx2cnwbcrun2mum2eg2c7zgfi7k7fetruwzmdiq.b32.i2p/count.html

To use it, you need include code like the following.

<img src="http://5gn3ca4z4occksx2cnwbcrun2mum2eg2c7zgfi7k7fetruwzmdiq.b32.i2p/conter.cgi?page=123456789k&color=green" height=40>

Pick a number. That will be your site number. Or, you can use a new number for each html page. But, any page with the same number will increment that number's count.

As for the color. Use normal color names. They should work. No hex colors. If you do not specify a color then it will default to black text. The background will be transparent.

Anyone is welcome to use this freely. Enjoy!


#!/usr/bin/perl

# code by notbob.i2p

use warnings;
use Fcntl ':flock'; # Import LOCK_* constants
use Time::HiRes qw(usleep); # For sub-second sleeping
use CGI qw/:standard/;

$site = param("site");
$site =~ s/\D//g;

$color = param("color");

$color = lc($color);
$color =~ s/[^a-z]//g;

if ( $color eq "" ) { $color = "black"; }

print("Content-type: image/svg+xml\n\n");

# File to store the page counter
my $counterFile = "/comhtml/5gn3ca4z4occksx2cnwbcrun2mum2eg2c7zgfi7k7fetruwzmdiq.b32.i2p/counter/$site.txt";

# Function to read the current counter value
sub read_counter {
 my ($filename) = @_;
 open(my $fh, '<', $filename) or die "Cannot open file $filename: $!";
 flock($fh, LOCK_SH); # Shared lock for reading
 my $counter = <$fh>;
 chomp($counter);
 close($fh);
 return $counter;
}

# Function to increment and save the counter
sub save_counter {
 my ($filename, $counter) = @_;
 open(my $fh, '>', $filename) or die "Cannot open file $filename: $!";
 while (!flock($fh, LOCK_EX | LOCK_NB)) {
 # If the file is locked, wait a short time and try again
 usleep(100000); # 100 milliseconds
 }
 print $fh $counter;
 close($fh);
}

# Read current counter value from file
my $counter = -e $counterFile ? read_counter($counterFile) : 0;

# Increment the counter
$counter++;

# Save updated counter value to file
save_counter($counterFile, $counter);

# Generate HTML page counter span
#print "Content-Type: text/html\n\n";
#print "<span id=\"counter\">$counter</span>\n";

print "<svg width=\"100\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\">
 <text x=\"10\" y=\"40\" font-family=\"Arial\" font-size=\"40\" fill=\"$color\">$counter</text>
</svg>";

To use this, you will also need to create a counter directory on the webserver and give it read-write permission for whatever webserver you are running.

2

not_bob wrote

I have added a way to change the color. just add &color=color to the end of the url and it will change the text color. The background will be transparent.

You can use any normal color name, red, green, blue, purple, orange, plum, and so on. If you don't like these colors, try others.

if you do not specify a color it will default to black. If you try an invalid color, it will default to black.

2

not_bob wrote (edited )

I have written a counter you can use in a static site.

To use the counter just include the following code in your html.

<img src="http://5gn3ca4z4occksx2cnwbcrun2mum2eg2c7zgfi7k7fetruwzmdiq.b32.i2p/counter.cgi?site=123842384" height=30>

Change the site number to a random number, and that will be your site number. Feel free to adjust the height to anything you want, the output is a svg file, so it will scale.

You could even use a different site number for each page on your site. Each site has it's own unique count.

As for logging. That server logs access just as any other normal webserver does. I do not share the data with anyone, and the only identifying information that is collected by the server is the b32 of the client who hits the site and the time/date.

2

z3d wrote (edited )

With the default I2P webserver (Jetty), assuming you have perl installed, you can run perl scripts from eepsite/cgi-bin. Something like the following will provide a basic pagecounter when embedded in a iframe:

#!/usr/bin/perl

use strict;
use warnings;

# File to store the page counter
my $counterFile = "counter.txt";

# Read current counter value from file
my $counter = 0;
if (-e $counterFile) {
open(my $fh, '<', $counterFile);
$counter = <$fh>;
chomp($counter);
close($fh);
}

# Increment the counter
$counter++;

# Save updated counter value to file
open(my $fh, '>', $counterFile);
print $fh $counter;
close($fh);

# Generate HTML page counter span
print "Content-Type: text/html\n\n";
print "<span id=\"counter\">$counter</span>\n";
4

noptic wrote

Looks like I2P usage and content is growing. I hope we will have most of the internet available on I2P in a few years.

Thanks for hosting your valuable service for all this time, you are a trooper.

4