t* my version of playonbsd.com data
       
   URI git clone git://git.codevoid.de/playonbsd-sdk.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
       ---
   DIR commit 8f09aeed439bb67e86cd302972faea2423c4b5da
   URI Author: Stefan Hagen <sh+git[at]codevoid[dot]de>
       Date:   Sun, 10 May 2020 19:20:49 +0200
       
       initial commit
       
       Diffstat:
         A .dancer                             |       0 
         A MANIFEST                            |      24 ++++++++++++++++++++++++
         A MANIFEST.SKIP                       |      17 +++++++++++++++++
         A Makefile.PL                         |      26 ++++++++++++++++++++++++++
         A README                              |       7 +++++++
         A bin/app.psgi                        |      45 +++++++++++++++++++++++++++++++
         A config.yml                          |      62 +++++++++++++++++++++++++++++++
         A cpanfile                            |      14 ++++++++++++++
         A environments/development.yml        |      23 +++++++++++++++++++++++
         A environments/production.yml         |      16 ++++++++++++++++
         A lib/PlayOnBSD.pm                    |      52 +++++++++++++++++++++++++++++++
         A playonbsd.sqlite                    |       0 
         A public/404.html                     |      18 ++++++++++++++++++
         A public/500.html                     |      18 ++++++++++++++++++
         A public/css/error.css                |       0 
         A public/css/style.css                |       2 ++
         A public/dispatch.cgi                 |      16 ++++++++++++++++
         A public/dispatch.fcgi                |      18 ++++++++++++++++++
         A public/favicon.ico                  |       0 
         A public/images/perldancer-bg.jpg     |       0 
         A public/images/perldancer.jpg        |       0 
         A public/javascripts/jquery.js        |       2 ++
         A schema.sql                          |      38 +++++++++++++++++++++++++++++++
         A start.sh                            |       2 ++
         A t/001_base.t                        |       5 +++++
         A t/002_index_route.t                 |      16 ++++++++++++++++
         A views/404.tt                        |       8 ++++++++
         A views/index.tt                      |      62 +++++++++++++++++++++++++++++++
         A views/layouts/main.tt               |      15 +++++++++++++++
       
       29 files changed, 506 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/.dancer b/.dancer
   DIR diff --git a/MANIFEST b/MANIFEST
       t@@ -0,0 +1,24 @@
       +MANIFEST
       +MANIFEST.SKIP
       +Makefile.PL
       +config.yml
       +cpanfile
       +.dancer
       +bin/app.psgi
       +environments/production.yml
       +environments/development.yml
       +lib/PlayOnBSD.pm
       +public/dispatch.fcgi
       +public/404.html
       +public/500.html
       +public/favicon.ico
       +public/dispatch.cgi
       +public/css/style.css
       +public/css/error.css
       +public/images/perldancer.jpg
       +public/images/perldancer-bg.jpg
       +public/javascripts/jquery.js
       +t/001_base.t
       +t/002_index_route.t
       +views/index.tt
       +views/layouts/main.tt
   DIR diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP
       t@@ -0,0 +1,17 @@
       +^\.git\/
       +maint
       +^tags$
       +.last_cover_stats
       +Makefile$
       +^blib
       +^pm_to_blib
       +^.*.bak
       +^.*.old
       +^t.*sessions
       +^cover_db
       +^.*\.log
       +^.*\.swp$
       +MYMETA.*
       +^.gitignore
       +^.svn\/
       +^PlayOnBSD-
   DIR diff --git a/Makefile.PL b/Makefile.PL
       t@@ -0,0 +1,26 @@
       +use strict;
       +use warnings;
       +use ExtUtils::MakeMaker;
       +
       +# Normalize version strings like 6.30_02 to 6.3002,
       +# so that we can do numerical comparisons on it.
       +my $eumm_version = $ExtUtils::MakeMaker::VERSION;
       +$eumm_version =~ s/_//;
       +
       +WriteMakefile(
       +    NAME                => 'PlayOnBSD',
       +    AUTHOR              => q{sdk <sh+playonbsd[at]codevoid.de>},
       +    VERSION_FROM        => 'lib/PlayOnBSD.pm',
       +    ABSTRACT            => 'The OpenBSD Gaming Community',
       +    ($eumm_version >= 6.3001
       +      ? ('LICENSE'=> 'perl')
       +      : ()),
       +    PL_FILES            => {},
       +    PREREQ_PM => {
       +        'Test::More' => 0,
       +        'YAML'       => 0,
       +        'Dancer2'     => 0.300000,
       +    },
       +    dist                => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
       +    clean               => { FILES => 'PlayOnBSD-*' },
       +);
   DIR diff --git a/README b/README
       t@@ -0,0 +1,7 @@
       +# PlayOnBSD Page
       +
       +## Requirements
       +
       +- p5-Dancer2
       +- p5-DBD-SQLite
       +- p5-File-Slurper
   DIR diff --git a/bin/app.psgi b/bin/app.psgi
       t@@ -0,0 +1,45 @@
       +#!/usr/bin/env perl
       +
       +use strict;
       +use warnings;
       +use FindBin;
       +use lib "$FindBin::Bin/../lib";
       +
       +
       +# use this block if you don't need middleware, and only have a single target Dancer app to run here
       +use PlayOnBSD;
       +
       +PlayOnBSD->to_app;
       +
       +=begin comment
       +# use this block if you want to include middleware such as Plack::Middleware::Deflater
       +
       +use PlayOnBSD;
       +use Plack::Builder;
       +
       +builder {
       +    enable 'Deflater';
       +    PlayOnBSD->to_app;
       +}
       +
       +=end comment
       +
       +=cut
       +
       +=begin comment
       +# use this block if you want to mount several applications on different path
       +
       +use PlayOnBSD;
       +use PlayOnBSD_admin;
       +
       +use Plack::Builder;
       +
       +builder {
       +    mount '/'      => PlayOnBSD->to_app;
       +    mount '/admin'      => PlayOnBSD_admin->to_app;
       +}
       +
       +=end comment
       +
       +=cut
       +
   DIR diff --git a/config.yml b/config.yml
       t@@ -0,0 +1,62 @@
       +# This is the main configuration file of your Dancer2 app
       +# env-related settings should go to environments/$env.yml
       +# all the settings in this file will be loaded at Dancer's startup.
       +
       +# === Basic configuration ===
       +
       +# Your application's name
       +appname: "PlayOnBSD"
       +
       +# The default layout to use for your application (located in
       +# views/layouts/main.tt)
       +layout: "main"
       +
       +# when the charset is set to UTF-8 Dancer2 will handle for you
       +# all the magic of encoding and decoding. You should not care
       +# about unicode within your app when this setting is set (recommended).
       +charset: "UTF-8"
       +
       +# === Engines ===
       +#
       +# NOTE: All the engine configurations need to be under a single "engines:"
       +# key.  If you uncomment engine configurations below, make sure to delete
       +# all "engines:" lines except the first.  Otherwise, only the last
       +# "engines:" block will take effect.
       +
       +# template engine
       +# simple: default and very basic template engine
       +# template_toolkit: TT
       +
       +# template: "simple"
       +
       +template: "template_toolkit"
       +engines:
       +  template:
       +    template_toolkit:
       +      # Note: start_tag and end_tag are regexes
       +      start_tag: '<%'
       +      end_tag:   '%>'
       +
       +# session engine
       +#
       +# Simple: in-memory session store - Dancer2::Session::Simple
       +# YAML: session stored in YAML files - Dancer2::Session::YAML
       +#
       +# Check out metacpan for other session storage options:
       +# https://metacpan.org/search?q=Dancer2%3A%3ASession&search_type=modules
       +#
       +# Default value for 'cookie_name' is 'dancer.session'. If you run multiple
       +# Dancer apps on the same host then you will need to make sure 'cookie_name'
       +# is different for each app.
       +#
       +engines:
       +  session:
       +    Simple:
       +      cookie_name: playonbsd.session
       +#
       +#engines:
       +#  session:
       +#    YAML:
       +#      cookie_name: eshop.session
       +#      is_secure: 1
       +#      is_http_only: 1
   DIR diff --git a/cpanfile b/cpanfile
       t@@ -0,0 +1,14 @@
       +requires "Dancer2"       => "0.300000";
       +requires "DBD::SQLite"   => "0";
       +requires "File::Slurper" => "0";
       +
       +
       +recommends "YAML"             => "0";
       +recommends "URL::Encode::XS"  => "0";
       +recommends "CGI::Deurl::XS"   => "0";
       +recommends "HTTP::Parser::XS" => "0";
       +
       +on "test" => sub {
       +    requires "Test::More"            => "0";
       +    requires "HTTP::Request::Common" => "0";
       +};
   DIR diff --git a/environments/development.yml b/environments/development.yml
       t@@ -0,0 +1,23 @@
       +# configuration file for development environment
       +
       +# the logger engine to use
       +# console: log messages to STDOUT (your console where you started the
       +#          application server)
       +# file:    log message to a file in log/
       +logger: "console"
       +
       +# the log level for this environment
       +# core is the lowest, it shows Dancer2's core log messages as well as yours
       +# (debug, info, warning and error)
       +log: "core"
       +
       +# should Dancer2 consider warnings as critical errors?
       +warnings: 1
       +
       +# should Dancer2 show a stacktrace when an 5xx error is caught?
       +# if set to yes, public/500.html will be ignored and either
       +# views/500.tt, 'error_template' template, or a default error template will be used.
       +show_errors: 1
       +
       +# print the banner
       +startup_info: 1
   DIR diff --git a/environments/production.yml b/environments/production.yml
       t@@ -0,0 +1,16 @@
       +# configuration file for production environment
       +
       +# only log warning and error messsages
       +log: "warning"
       +
       +# log message to a file in logs/
       +logger: "file"
       +
       +# don't consider warnings critical
       +warnings: 0
       +
       +# hide errors
       +show_errors: 0
       +
       +# disable server tokens in production environments
       +no_server_tokens: 1
   DIR diff --git a/lib/PlayOnBSD.pm b/lib/PlayOnBSD.pm
       t@@ -0,0 +1,52 @@
       +package PlayOnBSD;
       +use Dancer2;
       +
       +use DBI;
       +use File::Spec;
       +use File::Slurper qw/ read_text /;
       +use Template;
       +
       +# debug
       +use Data::Dumper;
       +# /debug
       +
       +set 'database'     => File::Spec->catfile('playonbsd.sqlite');
       +set 'show_errors' => 1;
       +set 'startup_info' => 1;
       +set 'warnings'     => 1;
       +
       +our $VERSION = '0.1';
       +
       +sub connect_db {
       +    my $dbh = DBI->connect("dbi:SQLite:dbname=".setting('database'))
       +        or die $DBI::errstr;
       +    print "Connection to database established\n";
       +    return $dbh;
       +}
       + 
       +sub init_db {
       +    my $db     = connect_db();
       +    my $schema = read_text('./schema.sql');
       +    $db->do($schema)
       +        or die $db->errstr;
       +    print "Database initialized\n";
       +}
       +
       +get '/' => sub {
       +    my $db  = connect_db();
       +
       +    my $sql = 'SELECT game_id, title, image, engine, comment, createdat, changedat FROM games ORDER BY game_id DESC';
       +
       +    my $sth = $db->prepare($sql)
       +        or die $db->errstr;
       +    
       +    $sth->execute
       +        or die $sth->errstr;
       +
       +    template 'index.tt', {
       +        games => $sth->fetchall_hashref('game_id')
       +    };
       +};
       +
       +init_db;
       +true;
   DIR diff --git a/playonbsd.sqlite b/playonbsd.sqlite
       Binary files differ.
   DIR diff --git a/public/404.html b/public/404.html
       t@@ -0,0 +1,18 @@
       +<!DOCTYPE html>
       +<html lang="en">
       +<head>
       +  <meta charset="utf-8">
       +  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
       +  <title>Error 404</title>
       +  <link rel="stylesheet" href="/css/error.css">
       +</head>
       +<body>
       +<h1>Error 404</h1>
       +<div id="content">
       +<h2>Page Not Found</h2><p>Sorry, this is the void.</p>
       +</div>
       +<div id="footer">
       +Powered by <a href="http://perldancer.org/">Dancer2</a>.
       +</div>
       +</body>
       +</html>
   DIR diff --git a/public/500.html b/public/500.html
       t@@ -0,0 +1,18 @@
       +<!DOCTYPE html>
       +<html lang="en">
       +<head>
       +  <meta charset="utf-8">
       +  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
       +  <title>Error 500</title>
       +  <link rel="stylesheet" href="/css/error.css">
       +</head>
       +<body>
       +<h1>Error 500</h1>
       +<div id="content">
       +<h2>Internal Server Error</h2><p>Wooops, something went wrong</p>
       +</div>
       +<div id="footer">
       +Powered by <a href="http://perldancer.org/">Dancer2</a>.
       +</div>
       +</body>
       +</html>
   DIR diff --git a/public/css/error.css b/public/css/error.css
   DIR diff --git a/public/css/style.css b/public/css/style.css
       t@@ -0,0 +1 @@
codevoid.de:70 /git/playonbsd-sdk/commit/8f09aeed439bb67e86cd302972faea2423c4b5da.gph:400: line too long