From a18d0ebb7d16c5a80196ecd326be6436082832f6 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 8 Mar 2011 22:27:05 -0600 Subject: import initial version from App-Nopaste-0.26 --- dist.ini | 2 + lib/App/Nopaste/Service/Mathbin.pm | 144 +++++++++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+) diff --git a/dist.ini b/dist.ini index 49bc8fa..8af37e7 100644 --- a/dist.ini +++ b/dist.ini @@ -5,5 +5,7 @@ copyright_holder = Jesse Luehrs [@DOY] dist = App-Nopaste-Service-Mathbin +Git::NextVersion_first_version = 0.27 [Prereqs] +App::Nopaste = 0.05 diff --git a/lib/App/Nopaste/Service/Mathbin.pm b/lib/App/Nopaste/Service/Mathbin.pm index e69de29..755d7ee 100644 --- a/lib/App/Nopaste/Service/Mathbin.pm +++ b/lib/App/Nopaste/Service/Mathbin.pm @@ -0,0 +1,144 @@ +package App::Nopaste::Service::Mathbin; +use strict; +use warnings; +use base 'App::Nopaste::Service'; +# ABSTRACT: http://www.mathbin.net/ + +=head1 SYNOPSIS + + nopaste -s Mathbin + +=head1 DESCRIPTION + +This provides L functionality for the +L pastebin. It also provides a small amount of +manipulation of the text, such that TeX files should be able to be provided +unmodified. + +=cut + +sub uri { 'http://www.mathbin.net/' } +sub forbid_in_default { 1 } + +sub fill_form { + my $self = shift; + my $mech = shift; + my %args = @_; + + $mech->submit_form( + form_number => 1, + fields => { + body => $self->fix_eqns($args{text}), + do { $args{desc} ? (title => $args{desc}) : () }, + do { $args{nick} ? (name => $args{nick}) : () }, + }, + ); +} + +sub return { + my $self = shift; + my $mech = shift; + + my $result = $mech->base; + + return (1, $result) if $result =~ /\/\d+$/; + return (0, "Paste unsuccessful"); +} + +sub fix_eqns { + my $self = shift; + my $text = shift; + + $text =~ s"\\\["[EQ]"g; + $text =~ s"\\\]"[/EQ]"g; + + my @text = split /\$\$/, $text, -1; + $text = ''; + my $inside = 0; + for (@text) { + $text .= $_; + if ($inside) { + $text .= '[/EQ]'; + $inside = 0; + } + else { + $text .= '[EQ]'; + $inside = 1; + } + } + $text =~ s/\[EQ\]$//; + + @text = split /\$/, $text, -1; + $text = ''; + $inside = 0; + for (@text) { + $text .= $_; + if ($inside) { + $text .= '[/IEQ]'; + $inside = 0; + } + else { + $text .= '[IEQ]'; + $inside = 1; + } + } + $text =~ s/\[IEQ\]$//; + + return $text; +} + +=head1 BUGS + +No known bugs. + +Please report any bugs through RT: email +C, or browse to +L. + +=head1 SEE ALSO + +L + +L + +=head1 SUPPORT + +You can find this documentation for this module with the perldoc command. + + perldoc App::Nopaste::Service::Mathbin + +You can also look for information at: + +=over 4 + +=item * AnnoCPAN: Annotated CPAN documentation + +L + +=item * CPAN Ratings + +L + +=item * RT: CPAN's request tracker + +L + +=item * Search CPAN + +L + +=back + +=begin Pod::Coverage + +uri +forbid_in_default +fill_form +return +fix_eqns + +=end Pod::Coverage + +=cut + +1; -- cgit v1.2.3