DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:woot

Table of Contents

woot Plugin

Compatible with DokuWiki

No compatibility info given!

plugin Grabs the current listed product, price, and image from the popular woot.com

Last updated on
2019-07-02
Provides
Syntax

Tagged with embed, feed, random

This plugin allows you to insert woot.com's current product information into your wiki. woot.com is a popular site which offers a single product a day at a (usually) low price. While they do offer an RSS feed, it's very minimal and doesn't directly relate to their current product. This plugin displays the product description, the price (+ shipping), and the product image. It does all this by using screen scraping methods, so if it's the case the plugin ever breaks, it's probably due to a site design change on their part. Oh well.

Update 2019-07-02 by Tom McArthur:

  • Added usage tip.

Update 2019-06-27 by Tom McArthur:

  • Fixed the search strings for $title, $price, and $img

Update 2008-05-19:

  • Fixed the broken screen scraping code, woot changed site design slightly.

Update 2008-03-27:

  • Added the “woot off” detection logic.
  • Threw in an old school blink tag!

Usage

Usage is as simple as :

{{woot}}

You can put that into the folded plugin so you can collapse it after viewing it. I put this in a page that I access daily:

++++Woot.com|{{woot}} ++++

syntax.php

Place the following code into lib/plugins/woot/syntax.php

syntax.php
<?php
/**
 * Woot Plugin
 * 
 * woot.com is a fun little website which offers a single deal on
 * some techie gadget daily. Sometimes the deals are great, but 
 * generally it's crap. This plugin screen scraps woot and grabs
 * the current product price, title, and image. 
 * 
 * @author Russ Meyerriecks <datachomper@gmail.com>
 * @editor Tom McArthur <ThomasMcAZZ@ZZcomputerZZ.ZZorg> (remove the ZZ's)
 *
 */
// must be run within DokuWiki
if(!defined('DOKU_INC')) die();
 
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
 
class syntax_plugin_woot extends DokuWiki_Syntax_Plugin {
 
    /**
     * return some info
     */
    function getInfo(){
        return array(
            'author' => 'Russ Meyerriecks',
            'email'  => 'datachomper@gmail.com',
            'date'   => '2019-07-02',
            'name'   => 'Woot Plugin',
            'desc'   => 'Grabs the current woot.com product name, price, and image',
            'url'    => 'https://www.dokuwiki.org/plugin:woot',
        );
    }
 
    /**
     * What kind of syntax are we?
     */
    function getType(){
        return 'substition';
    }
 
    /**
     * What about paragraphs?
     */
    function getPType(){
        return 'block';
    }
 
    /**
     * Where to sort in?
     */
    function getSort(){
        return 188;
    }
 
 
    /**
     * Connect pattern to lexer
     */
    function connectTo($mode) {
        $this->Lexer->addSpecialPattern('\{\{woot\}\}', $mode, 'plugin_woot');
    }
 
    /**
     * Handle the match
     */
    function handle($match, $state, $pos, &$handler){
        return array();
    }
 
    /**
     * Create output
     */
    function render($format, &$renderer, $data) {
        if($format == 'xhtml'){
            //handle various info stuff
            $woot = file_get_contents('http://www.woot.com');
/**
 * Tom McArthur: fixed the search strings for $title, $price, and $img
 */
            preg_match("/class=\"main-title fn\">(.+)<\/h2>/", $woot, $matches);
            $title = $matches[1];
 
            preg_match("/class=\"price\">(.+)<\/span>/", $woot, $matches);
            $price = $matches[1];
 
            preg_match("/shipping\">(.+)<\/span>/", $woot, $matches);
            $shipping = $matches[1];
 
            preg_match("/img class=\"photo\" src=\"(.+)\" alt/", $woot, $matches);
            $img = $matches[1];
            $renderer->doc .= $title . '<br>';
            $renderer->doc .= "Price : $price $shipping <br>";
            if(preg_match("/WootOffPanel/", $woot) > 0){
                $renderer->doc .= "<b><blink>WOOT OFF ZOMG!!!!!</blink></b><br>";
            }
            $renderer->doc .= "<a href='http://www.woot.com'><img src='$img'></a>";
 
            return true;
        }
        return false;
    }
}
plugin/woot.txt · Last modified: 2019-08-10 18:49 by Aleksandr