NAME

WebService::TDWTF - retrieve articles from thedailywtf.com

SYNOPSIS

use WebService::TDWTF;
my $random_article = tdwtf_article;
say $random_article->Title;
say $random_article->Body;

my $x = tdwtf_article 8301;
say $x->Title;  # Your Recommended Virus
my $y = tdwtf_article 'your-recommended-virus'; # $x and $y are equivalent

my @recent = tdwtf_list_recent;
say scalar @recent; # 8
@recent = tdwtf_list_recent 10;
say scalar @recent; # 10

my @dec15 = tdwtf_list_recent 2015, 12;
say $dec15[0]->Title; # Best of 2015: The A(nti)-Team
say $dec15[0]->Body;  # (this makes an API call, see NOTES)
say $dec15[0]->Body;  # (this doesn't make an API call)

my @erik = tdwtf_list_author 'erik-gern'; # (most recent 8 articles by Erik Gern)
my @sod  = tdwtf_list_series 'code-sod', 5;  # (most recent 5 CodeSOD articles)

# All Error'd articles published in January 2014
my @jan14_errord = tdwtf_list_series 'errord', 2014, 1;

DESCRIPTION

WebService::TDWTF is an interface to the API of http://thedailywtf.com. Quoting the website's sidebar:

Founded in 2004 by Alex Papadimoulis, The Daily WTF is your
how-not-to guide for developing software. We recount tales of
disastrous development, from project management gone spectacularly
bad to inexplicable coding choices.

This module exports the following functions:

tdwtf_article()
tdwtf_article($id_or_slug)
article()
article($id_or_slug)

With an argument, returns a WebService::TDWTF object representing the article with the given ID or slug.

With no arguments, returns a WebService::TDWTF object representing a random article.

tdwtf_list_recent()
tdwtf_list_recent($count)
tdwtf_list_recent($year, $month)
list_recent()
list_recent($count)
list_recent($year, $month)

With no arguments, returns the most recent 8 articles.

With one argument, returns the most recent $count articles. $count is at most 100.

With two arguments, returns all articles published in the given month of the given year. $month is an integer between 1 and 12.

tdwtf_list_series($slug)
tdwtf_list_series($slug, $count)
tdwtf_list_series($slug, $year, $month)
list_series($slug)
list_series($slug, $count)
list_series($slug, $year, $month)

With no arguments, returns the most recent 8 articles in the given series.

With one argument, returns the most recent $count articles in the given series. $count is at most 100.

With two arguments, returns all articles in the given series published in the given month of the given year. $month is an integer between 1 and 12.

tdwtf_list_author($slug)
tdwtf_list_author($slug, $count)
tdwtf_list_author($slug, $year, $month)
list_author($slug)
list_author($slug, $count)
list_author($slug, $year, $month)

With no arguments, returns the most recent 8 articles by the given author.

With one argument, returns the most recent $count articles by the given author. $count is at most 100.

With two arguments, returns all articles by the given author published in the given month of the given year. $month is an integer between 1 and 12.

NOTES

All functions are exported of the name tdwtf_foo are exported by default. The unprefixed variants can be exported on request.

The tdwtf_list_* functions return a list of incomplete WebService::TDWTF::Article objects. These objects contain all of the fields of a normal object, except for BodyHtml and FooterAdHtml. For these objects, the Body mehod of WebService::TDWTF::Article retrieves the BodyHtml and FooterAdHtml fields from the API and saves them into the object.

All tdwtf_list_* functions return articles in reverse chronological order. That is, the first element of the list is the most recent article.

SEE ALSO

http://thedailywtf.com/

https://github.com/tdwtf/WtfWebApp/blob/master/Docs/API.md

AUTHOR

Marius Gavrilescu, <marius@ieval.ro>

COPYRIGHT AND LICENSE

Copyright (C) 2016 by Marius Gavrilescu

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.20.2 or, at your option, any later version of Perl 5 you may have available.