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;
my @series = series; # List of all series
my $series = series; # Number of series ($series == @series)
print $series[0]->Slug; # alexs-soapbox
print $series[0]->Title; # Alex's Soapbox
print $series[0]->Description; # <description of this series>
print $series[0]->CssClass; # tales
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.
-
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.
- tdwtf_series
- series
-
In list context, returns a list of all existing article series. Each series is an unblessed hashref with the keys
Slug
,Title
,Description
andCssClass
.In scalar context, returns the number of existing article series.
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
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.