WIENER is the Wireless IntErnet NEws Reader. Installed as a CGI on any webserver it allows online WML access to newsgroups. Being a pure WAP service, the user requires no additional software on the end device (except a WML cap able browser).

WIENER lets you read, post and reply newspostings with a mobile phone or PDA. And if the end device supports it, you can even download attachments. For better usability, predefined texts can be entered by the user easily. WIENER is not an offline newsreader; a (wireless) network connection must be established.

System Requirements

  • CGI-enabled Webserver
  • NNT P Newsserver
  • Perl 5
  • DBI (optional)


You can download the package here. All files are distributed under the Perl Artistic License. By downloading and using the files, you agree to the terms set in the license agreement.


First, download and unpack the script and copy it to your CGI directory. The disk.wbmp file can go anywhere (accessible) on the server. Make executable by typing

chmod 755

and, if necessary, adjust the user and group ownership. Make sure that the webserver can execute CGIs and delivers WML pages with the correct content header. Then, adjust the global variables at the beginning of the script:




Enter the adress of your NNTP host and the URL where the icon from the package can be found. Groups that should be invisible to the user (e.g. control or binary groups) can be placed in the array. WIENER is now basically ready to use now. The script itself can be called with a simple link in the WML page, passing the de sired newgroup as a parameter:

<a href="">News</a>

Or to show subscriptions:

<a href="">Subscr.</a>

Wildcards are allowed:

<a href="*">News</a>

The configuration section below explains the various variables and their settings. In addition to this, the documentation can be read with



Newsgroup Posting Reply


An extensive documentation is available via perldoc. The following sections explains the variables and other options. For basic operation, the default values should be ok. If you want to use additional features, tweaking some of the variables is necessary. Note that the device dependent setting override the global settings.

$use_db Set to 1 if you have a user database
$allow_post Set to 1 if you want to allow new postings
$show_attach Set to 1 if attachment should be shown
@hide_group Invisible Newsgroups
$nntp_host Adress of the NNTP Newsserver
$discicon Location (URL) of disk.wbmp
$db_srv Adress of the database server (or socket file)
$db_dba Name of the user database
$db_tab Name of the user table
$db_usr Login name for database
$db_pwd Password for database (not required for socket)
$prefix Prefix for all groupnames in database
$db_get_abo SQL statement to retreive user subscriptions
$screenwidth Characters per line on device display
$maxchars Maximum number of characters (size of page)
$limitlines Number of lines in menu (-1 means no limit)
$allow_dl Allow download of attachments

So in order to prevent attachment downloads, set the global $allow_dl to 0 and do not change it in the device section. Devices are recognized by interpreting the HTTP agent string. This method is not perfect, but currently the only way. For the subscription service, you need to gather a user ID. How you do this is up to you. A login screen is one way, using the mobile phone number is another (if you want to do it the fancy way).

Bugs & Shortcomings

No threading of articles. This was left out due to the limited screen size of current mobile phones. Many other cool features found in desktop newsreaders are missing: no killfile, no ROT13, no PGP signatures, no signatures.

There was not really extensive testing with mobile devices, although WIENER works with the Deck-It WAP emulator, PocketInternetExplorer (on a PocketPC 2002 device) and WAP Universe on PalmOS. Attachments might not always work correctly, I guess the decoding and splitting algorithm is a evil hack. There are probably other bugs, too – notify me if you find one. Also, the code could be much more elegant.

Creative Commons License - © 2007 Codecat - powered by WordPress