Published using Google Docs
Frypan Anti-spam Service Document
Updated automatically every 5 minutes

Frypan Anti-spam Service

Jeongkyu Shin ( inureyes @ )

Frypan Anti-spam Service (FAS) is an anti-spam service including light-weight anti-spam server / client program.


Notification about closing of EOLIN Anti-spam Service by Google in 2010 leads Needlworks decide to develop a new anti-spam service from scratch. Anti-spam project was temporary named as A2, and the name was changed to FAS, which was used for Textcube spam deletion plugin, especially for massive spam bombs. Needlworks started its testing from Jaunary 2011, and launched at Feburary 25, 2011. After tuning and collecting samples, FAS is now working functionally since April 15, 2011.


The goal of FAS Server program is



FAS Server program runs on ‘codeball’ framework, which is used for Textcube projects. (Note. Current Textcube uses a fraction of codeball, not entirely.)


Set-up (server / service)


Decompress and move frypan directory to /apps directory. Modify /etc/urltab for proper access.

Adding request adapters

Move adapters to /apps/frypan/adapters

Adding anti-spam engines

Move engine file to /apps/frypan/engines .

Developing anti-spam engines

FAS supports multiple anti-spam engines. Engines consist of one or some files. Engines does not need to be a PHP file, however the engine adapter should be PHP file. Engine (or engine adapter for other languages) should contain the engine function with same name with file. This is an example.

     1 <?php

     2 /// This is example file for frypan engines. (a.k.a. 'Oil')

     3 ///

     4 /// Each engine should contain the function with same file name.

     5 /// e.g.      XX-example.php

     6 ///           ---=======

     7 ///  Order index  Function name.

     8 ///

     9 /// Return value should be true (it is spam) or false (it is not spam).

    10 function example($data) {

    11     return false;

    12 }

    13 ?>

$data contains as many parameter as request adapter supports. For EAS-compatible server, $data contains these values.

Additionally, you can use $data[‘ip’] if client uses renewed FAS plugin.

Function should return true or false.

Fig. 1. Basic work-flow.

Developing anti-spam clients

Request should use XML-RPC for EAS-compatible service. If you deploy your own FAS service and clients, you can decide the request specification as you want. Here is a description about default xml-rpc request.

request name : ‘checkSpam’

XML-RPC sequence :

  1. client name (usually the requesting blog address)
  2. type (1 : comment, 2: trackback, 3: guestbook)
  3. name
  4. title
  5. url
  6. content
  7. ip

For Working example, please refer the ‘FAS’ client plugin in Textcube. (‘EAS’ for older version)