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

The missing download url means that this extension cannot be installed via the Extension Manager. Please see Publishing a Plugin on dokuwiki.org. Recommended are public repository hosts like GitHub, GitLab or Bitbucket.

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

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

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki