Actions

Talk

Fanfic: Difference between revisions

From Betamountain.org

mNo edit summary
Line 128: Line 128:
if ($FANFIC=~ "^http(.*)")
if ($FANFIC=~ "^http(.*)")
   {
   {
       print $DATA_OUT "|$SHADE|[$FANFIC FF]\n";
    print $DATA_OUT "|$SHADE|[[File:Logo FanFiction.jpg|25px|link=$FANFIC]]\n";
       #print $DATA_OUT "|$SHADE|[$FANFIC FF]\n";
      #Logo FanFiction.jpg
   }
   }
else
else
Line 137: Line 139:
if ($AO3=~ "^http(.*)")
if ($AO3=~ "^http(.*)")
   {
   {
       print $DATA_OUT "|$SHADE|[$AO3 Ao3 ]\n";
    #[[Image:Wiki.png|50px|link=MediaWiki]]
       #print $DATA_OUT "|$SHADE|[$AO3 Ao3 ]\n";
      print $DATA_OUT "|$SHADE|[[File:Logo Ao3.jpg|25px|link=$AO3]]\n";
   }
   }
else
else
Line 146: Line 150:
if ($OTHER=~ "^http(.*)")
if ($OTHER=~ "^http(.*)")
   {
   {
       print $DATA_OUT "|$SHADE|[$OTHER Site]\n";
    #Logo Site.jpg
    print $DATA_OUT "|$SHADE|[[File:Logo Site.jpg|25px|link=$OTHER]]\n";
       #print $DATA_OUT "|$SHADE|[$OTHER Site]\n";
   }
   }
else
else
Line 220: Line 226:
     {
     {
       print $DATA_OUT "See Also [[:Category:Fanfic]]\n\n";
       print $DATA_OUT "See Also [[:Category:Fanfic]]\n\n";
       print $DATA_OUT "'''''Note:''' This page is under construction and there are parts missing from the list (apologies to AKK)!.''\n\n";
       print $DATA_OUT "'''''Note:''' This page is under construction and there are parts missing from the list.''\n\n";
       print $DATA_OUT "{| class=\"wikitable sortable\" style=\"margin: 1ex auto 1ex auto\"\n";
       print $DATA_OUT "{| class=\"wikitable sortable\" style=\"margin: 1ex auto 1ex auto\"\n";
       print $DATA_OUT "! Sort\n";
       print $DATA_OUT "! Sort\n";

Revision as of 12:31, 6 April 2019

How This Page Works

Due to the large number of elements on the Fanfic page, the page is built on information from this Google spreadsheet. Content adds\edits\etc are made to the spreadsheet and then downloaded as a CSV. The CSV is pulled through a Perl script and formatted for the page information, then posted.

There should be no direct edits to the page itself, only exports from the Perl output.

Mindnet 192000000.jpg



Known Issues

Unicode\Encoding issues cause Raumjäger to become Raumjäger on export and at the current time, my Perl-Fu isn't what it was.

Perl Example

Example code

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use Text::CSV;

my $filename='temp.txt';
my $NAME_CHECK="";
my $COUNTER=0;

my $INPUT_FILE = $ARGV[0] or die "Need to get CSV file on the command line\n";
my $CSV = Text::CSV->new ({
                                              binary    => 1,
                                              auto_diag => 1,
                                              sep_char  => ','    # not really needed as this is the default
                                              }
                                            );
 
open(my $DATA_IN, '<:encoding(utf8)', $INPUT_FILE) or die "Could not open '$INPUT_FILE' $!\n";
open (my $DATA_OUT, '>:encoding(utf8)', "output.txt") or die "Could not open: $!\n";

SETUP ();  #create page setup

while (my $fields = $CSV->getline( $DATA_IN )) 
  {
  ##1	#2	Title	Author	PERM	Done?	BM	FF		AO3	.	Other1	.	RATING	LANGUAGE	STYLE	Chapter #	Length	Published	Updated	Description	
  my $skip_1;            
  my $SORT;
  my $TITLE;
  my $AUTHOR;
  my $PERMISSION;
  my $DONE;
  my $BM;
  my $FANFIC;
  my $AO3;
  my $OTHER;
  my $RATING;
  my $LANGUAGE;
  my $STYLE;
  my $CHAPTERS;
  my $LENGTH;
  my $PUBLISHED;
  my $UPDATED;
  my $DESC;
  my $NOTES;
  my $SHADE;
  
  ####
      $skip_1 = $fields->[0];        
      $SORT = $fields->[1];          
      $TITLE = $fields->[2];          
      $AUTHOR = $fields->[3];
      $PERMISSION = $fields->[4];
      $DONE = $fields->[5];
      $BM = $fields->[6];
      $FANFIC = $fields->[7];
      $AO3 = $fields->[9];
      $OTHER = $fields->[11];
      $RATING = $fields->[13];
      $LANGUAGE = $fields->[14];
      $STYLE = $fields->[15];
      $CHAPTERS = $fields->[16];
      $LENGTH = $fields->[17];
      $PUBLISHED = $fields->[18];
      $UPDATED = $fields->[19];
      $DESC = $fields->[20];
      $NOTES = $fields->[21];
  
#############

  if ($skip_1=~ "X")
    {
    #IGNORE ANYTHING WITH AN X IN THE FIRST COLUMN
    }
    
else
  {
  $COUNTER++;
  if (0 == $COUNTER % 2) 
    {
    $SHADE="style=\"background:#D3D3D3\"";
    } 
  else
    {
    $SHADE="";
    }
      
#print $DATA_OUT "| $SORT\n";
#print $DATA_OUT "| {{#ifexist: $TITLE | [[$TITLE]] | $TITLE }} \n";  #Too intensive for Mediawiki

  print $DATA_OUT "|$SHADE|$COUNTER\n";

if ($DONE =~ "N")
  {
    print $DATA_OUT "|$SHADE|$TITLE\n";
  }
else
  {
  print $DATA_OUT "|$SHADE|[[$TITLE]]\n";
  #print $DATA_OUT "|\n";
  }

print $DATA_OUT "|$SHADE|$AUTHOR\n";
#print "PERMISSION: $PERMISSION\n";
#print "DONE: $DONE\n";
#print $DATA_OUT "|[[$TITLE]]\n";


if ($FANFIC=~ "^http(.*)")
  {
    print $DATA_OUT "|$SHADE|[[File:Logo FanFiction.jpg|25px|link=$FANFIC]]\n";
      #print $DATA_OUT "|$SHADE|[$FANFIC FF]\n";
      #Logo FanFiction.jpg
  }
else
  {
  print $DATA_OUT "|$SHADE|\n";
  }
  
if ($AO3=~ "^http(.*)")
  {
    #[[Image:Wiki.png|50px|link=MediaWiki]]
      #print $DATA_OUT "|$SHADE|[$AO3 Ao3 ]\n";
      print $DATA_OUT "|$SHADE|[[File:Logo Ao3.jpg|25px|link=$AO3]]\n";
  }
else
  {
  print $DATA_OUT "|$SHADE|\n";
  }

if ($OTHER=~ "^http(.*)")
  {
    #Logo Site.jpg
    print $DATA_OUT "|$SHADE|[[File:Logo Site.jpg|25px|link=$OTHER]]\n";
      #print $DATA_OUT "|$SHADE|[$OTHER Site]\n";
  }
else
  {
  print $DATA_OUT "|$SHADE|\n";
  }
  print $DATA_OUT "|$SHADE|$RATING\n";
  #print $DATA_OUT "| $LANGUAGE\n";
  #print $DATA_OUT "| $STYLE\n";
  #print $DATA_OUT "| $CHAPTERS\n";
  print $DATA_OUT "|$SHADE|$LENGTH\n";
  print $DATA_OUT "|$SHADE|$PUBLISHED\n";
  #print "UPDATED: $UPDATED\n";
  #print "DESC: $DESC\n";
  #print "NOTES: $NOTES\n";
  print $DATA_OUT "|-\n";
  print "$COUNTER - $TITLE-\n";
  }
  ######## 
    $skip_1="";         
    $SORT="";
    $TITLE="";
    $AUTHOR="";
    $PERMISSION="";
    $DONE="";
    $BM="";
    $FANFIC="";
    $AO3="";
    $OTHER="";
    $RATING="";
    $LANGUAGE="";
    $STYLE="";
    $CHAPTERS="";
    $LENGTH="";
    $PUBLISHED="";
    $UPDATED="";
    $DESC="";
    $NOTES="";
     
 ####
  }
 
if (not $CSV->eof) 
    {
    $CSV->error_diag();
    }

close $DATA_IN;
print $DATA_OUT "|}\n";
FINISHED ();
close $DATA_OUT;

sub CATEGORY
  {
    my $in=shift;
    if (defined $in && length $in > 0)
      {
      #print $fh "[[Category:$in]]\n";
      }
    }
    
sub BOX_OUTPUT
  {
    my ($type, $val) = @_;
    if (defined $val && length $val > 0)
      {
      print "$type: $val\n";
      }
    }
    
    
  sub SETUP
    {
      print $DATA_OUT "See Also [[:Category:Fanfic]]\n\n";
      print $DATA_OUT "'''''Note:''' This page is under construction and there are parts missing from the list.''\n\n";
      print $DATA_OUT "{| class=\"wikitable sortable\" style=\"margin: 1ex auto 1ex auto\"\n";
      print $DATA_OUT "! Sort\n";
      print $DATA_OUT "! Title\n";
      print $DATA_OUT "! Author\n";
      #print $DATA_OUT "! BM\n";
      print $DATA_OUT "! FF\n";
      print $DATA_OUT "! AO3\n";
      print $DATA_OUT "! Site\n";
      print $DATA_OUT "! Rating\n";
      #print $DATA_OUT "! Language\n";
      #print $DATA_OUT "! Style\n";
      #print $DATA_OUT "! Chapters\n";
      print $DATA_OUT "! Length\n";
      print $DATA_OUT "! Published\n";
      print $DATA_OUT "|-\n";
      }
      
    sub FINISHED
      {
      print $DATA_OUT "\n\n\n";
      print $DATA_OUT "[[Category:Spreadsheet]]\n";    
      print $DATA_OUT "[[Category:Perl]]\n";    
      }