Changeset 1354

Show
Ignore:
Timestamp:
03/02/07 03:02:11 (2 years ago)
Author:
jm3
Message:
  • preliminary AIM bot
  • JSON export
  • HTML export
  • reloadable perl modules
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • feedmelinks/_config/servers-template.xml

    r1325 r1354  
    1313 
    1414        <server name="live" 
    15                 domain="feedmelinks.com"  
     15                domain="your-server-name.com"  
    1616                port=""  
    17                 cookie-domain=".feedmelinks.com" 
     17                cookie-domain=".your-server-name.com" 
     18                blog-domain="blog.your-server-name.com"  
    1819                webserver-root="/path/to/your/webserver/root" 
    19                 database-name="db_name" 
    20                 database-user="db_username" 
    21                 database-password="db_password" 
     20                database-name="your-db-name" 
     21                database-user="your-db-user" 
     22                database-password="your-db-passwd" 
     23                bot-user="mr_roboto" 
     24                bot-password="robotstuff" 
     25                admin-user="you" 
     26                admin-user-password="OMG_STF_KTHXBAI" 
    2227                maintainer-email="you@whatevs.obvs.com" 
    2328                spamsafe-email="&nbsp;@&amp;encoded-somehow.com" 
     
    3742                port="8080"  
    3843                cookie-domain="" 
     44                blog-domain="blog.your-server-name.com"  
    3945                webserver-root="/home/whatever/your/name/here/www/" 
    40                 database-name="db_name" 
    41                 database-user="db_username" 
    42                 database-password="db_password" 
     46                database-name="your-db-name" 
     47                database-user="your-db-user" 
     48                database-password="your-db-passwd" 
     49                bot-user="mr_roboto" 
     50                bot-password="robotstuff" 
     51                admin-user="you" 
     52                admin-user-password="OMG_STF_KTHXBAI" 
    4353                maintainer-email="your-email@your-domain.com" 
    4454                spamsafe-email="somehow-obscured@domain.com" 
  • feedmelinks/admin/expire-old-users.php

    r1352 r1354  
    1313        $q = run_query( $qs ); 
    1414        $ttl = get_num_days_allowed_idle(); 
     15        $warn_ttl = $ttl - 8; 
    1516?> 
    16  
    17 <b><code><?= $qs ?></code></b> 
    18 <p /> 
    1917 
    2018<style type="text/css"> 
     
    3533                $last_link = get_time_of_last_action( $user ); 
    3634                $delta = round( diff_driver( $now, $last_link )); 
    37                 if( $delta > $ttl ) { 
     35 
     36                if( $delta > $warn_ttl ) { 
     37                        ++ $warners; 
     38                        $expired = false; 
     39                        $warned = true; 
     40                        notify_expiring_soon( $user ); 
     41                } else if( $delta > $ttl ) { 
    3842                        $expired = true; 
     43                        $warned = false; 
    3944                        ++ $idlers; 
    4045                        expire_user( $user ); 
    4146                } else { 
    42                         $expired = false; 
     47                        $expired = $warned = false; 
    4348                } 
     49 
     50                if( $warned || $expired ) { 
    4451?> 
    4552 
    4653<tr class="<?= $expired ? "expired" : "" ?>"> 
    47         <td><?= $expired ? "EXPIRED" : "&nbsp;" ?></td> 
     54        <td> 
     55        <?= $expired ? "Expired" : "&nbsp;" ?> 
     56        <?= $warned ? "Warned" : "&nbsp;" ?> 
     57        </td> 
    4858        <td><?= makeUserLink( $user ) ?></td> 
    4959        <td><?= $delta ?> days idle </td> 
     
    5262 
    5363<?php 
     64                } 
    5465        } 
    5566?> 
    5667 
    5768</table> 
    58 <h1><?= $idlers ?> idlers</h1> 
    5969 
     70<h1>disabled <?= $idlers ?> idle users</h1> 
     71<h1>warned <?= $warners ?> nearly expired users </h1> 
     72 
  • feedmelinks/bin/configure.sh

    r1325 r1354  
    4646fi 
    4747 
    48 echo 1. Creating server configs for your server \"$s\" 
     48echo 1. Writing the custom apache and php configs for your server \"$s\" 
    4949xsltproc --$sp server-name $s --$sp mode htaccess $xsl $xml > $root/.htaccess 
    5050 
  • feedmelinks/export/index.php

    r1352 r1354  
    3232        <select name="format"> 
    3333                <option value="xml_delicious">XML (del.icio.us compatible)</option> 
     34                <option value="html">HTML</option> 
     35                <option value="json">JSON</option> 
    3436                <option value="rss">RSS - coming soon</option> 
    3537        </select> 
  • feedmelinks/export/stevedore.php

    r1352 r1354  
    1414 
    1515        header( "Content-type: " . get_mime_type( $format )); 
    16         header( "Content-Disposition: attachment; filename='$u" . (($select == "private" || $select == "public") ? "-$select-" : "-") . "links" . get_extension( $format ) . "'" ); 
     16        header( "Content-Disposition: attachment; filename=$u" . (($select == "private" || $select == "public") ? "-$select-" : "-") . "links" . get_extension( $format ) ); 
    1717 
    1818        if( $op == "export" ) { 
  • feedmelinks/modules/utils.inc.php

    r1352 r1354  
    3333                case "rss"       :     
    3434                        return ".rss"; 
     35                case "json"       :     
     36                        return ".json"; 
    3537                default:  
    3638                        return ".txt"; 
     
    5860} 
    5961 
     62function recent_as_html( $u, $n ) { 
     63        $n = $n ? $n : 10; 
     64        return "$u wants $n links"; 
     65} 
     66 
    6067function export_as_xml_delicious( $u, $select ) { 
    6168        $now = format_mysql_date_as_DC_date( get_now_db()); 
     
    7885} 
    7986 
     87function export_as_json( $u, $select ) { 
     88        return "{'links': {\n  'link': [" .  export( $u, "json", $select ) . "]}}"; 
     89} 
     90 
    8091function render_as_html ( $u, $id, $url, $name, $createDate ) { 
    81         return "  <li>not yet implemented</li>\n"; 
     92        $tags = preg_replace( "/ /", "_", implode( ",", get_tag_names( $id, $u ))); 
     93        $url = encode_url_for_xml( $url ); 
     94        return "  <li><a href='$url' tags='$tags' date='$createDate'>$name</a></li>\n"; 
     95
     96 
     97function render_as_json ( $u, $id, $url, $name, $createDate ) { 
     98        $tags = preg_replace( "/ /", "_", implode( ",", get_tag_names( $id, $u ))); 
     99        $url = encode_url_for_xml( $url ); 
     100        return "\n    {\n" . "      'url': '$url',\n      'tags': '$tags',\n      'date': '$createDate',\n      'name': '$name'" . "\n    },"; 
    82101} 
    83102 
     
    85104        if( ! $u ) return; 
    86105         
    87         $qs = "SELECT ID, url, name, createDate, isPrivate FROM links WHERE userid = '" . urlencode( $u ) . "'"; 
     106        $qs = "SELECT ID, url, userid, name, createDate, isPrivate FROM links WHERE userid = '" . urlencode( $u ) . "'"; 
    88107        if( $select == "private" ) 
    89108                $qs .= " AND isPrivate = 1"; 
     
    91110                $qs .= " AND isPrivate IS NULL"; 
    92111 
    93         # FIXME: remove limiter!!!! 
    94         $qs .= " ORDER BY createDate DESC LIMIT 500;"; 
     112        $qs .= " ORDER BY createDate DESC;"; 
    95113         
    96114        ob_start(); 
    97115        $q = run_query( $qs ); 
    98  
     116        export_driver( $u, $select, $format, $q ); 
     117 
     118        $data = ob_get_clean(); 
     119        $data = preg_replace( "/,]/", "]", $data ); # FIXME: braindead why won't this fucking replace the # },]}} comma??????? 
     120        return $data; 
     121        $data = force_valid_xml( $data ); 
     122
     123 
     124# modern list-renderer 
     125function export_driver( $u, $scope, $format, $q ) { 
    99126        if( $q && mysql_num_rows($q) ) { 
    100127                while( $row = mysql_fetch_assoc( $q )) {  
    101128                        $id        = $row["ID"]; 
    102129                        $url       = urldecode( $row["url"] ); 
     130                        $owner    = urldecode( $row["userid"] ); 
    103131                        $name      = preg_replace( '/"/', "&amp;quot;", o( urldecode( $row["name"] ))); 
    104132                        $date      = format_mysql_date_as_DC_date( $row["createDate"] ); 
    105133                        $isPrivate = $row["isPrivate"]; 
    106134 
    107                         if( $select == "public" && $isPrivate == 1 ) 
     135                        if( $scope == "public" && $isPrivate == 1 ) 
    108136                                continue; 
    109  
    110                         echo call_user_func( "render_as_$format", $u, $id, $url, $name, $createDate ); 
     137                        if( $u != $owner ) 
     138                                continue; 
     139 
     140                        echo call_user_func( "render_as_$format", $u, $id, $url, $name, $date ); 
    111141                } 
    112142        } 
    113  
    114         $data = force_valid_xml( ob_get_clean()); 
    115         return $data; 
    116143} 
    117144 
     
    28472874# judge, jury, and executioner 
    28482875function isJJE( $u ) { 
    2849   if( $u == "jm3" || $u == "klaus_kinski"
     2876  if( $u == "jm3" || $u == get_bot_user()
    28502877    return true; 
    28512878  else 
     
    28542881 
    28552882function isSuperUser( $u ) { 
    2856   if( $u == "jm3" || $u == "pheezy" || $u == "klaus_kinski"
     2883  if( $u == "jm3" || $u == "pheezy" || $u == get_bot_user()
    28572884    return 1; 
    28582885  else 
     
    33453372     
    33463373  # spammers and newbies' links are private 
    3347   if( get_tag_to_link_ratio( $argSubmitter ) > get_max_ttl_ratio() ) { 
     3374  if( get_tag_to_link_ratio( $argSubmitter ) > get_max_ttl_ratio() ) { # this could be contraversial 
    33483375    $isPrivate = 1; 
    33493376    log_mesg_to( get_ip() . ": privatizing new link from $argSubmitter due to T:L ratio", "security" ); 
  • feedmelinks/testing/validate_users_im_name.php

    r1350 r1354  
    11<?php 
    22        include( "../modules/utils.inc.php" ); 
    3         validate_users_im_name( "klaus_kinski" ); 
     3        validate_users_im_name( validate_users_im_name() ); 
    44?>