view release on metacpan or search on metacpan
my $doc = $self->resolve_did($did);
return $doc->{alsoKnownAs}[0] =~ s/^at:\/\///r if $doc && $doc->{alsoKnownAs};
return;
}
method upload_blob ( $data, $mime_type ) {
$self->post( 'com.atproto.repo.uploadBlob' => { content => $data, headers => { 'Content-Type' => $mime_type } } );
}
method create_record ( $collection, $record, $rkey = undef ) {
$self->post( 'com.atproto.repo.createRecord' =>
{ repo => $self->did, collection => $collection, record => $record, defined $rkey ? ( rkey => $rkey ) : () } );
Example for Bluesky Chat:
$at->http->at_protocol_proxy("did:web:api.bsky.chat#bsky_chat");
=head2 C<upload_blob( $data, $mime_type )>
Uploads a raw binary blob to the PDS. Returns the blob's metadata (CID, etc).
=head2 C<create_record( $collection, $record, [ $rkey ] )>
view all matches for this distribution
view release on metacpan or search on metacpan
Constructor.pm view on Meta::CPAN
Made the constructor behave as a static or virtual method
=item 0.03
Packaged it up so that it can be uploaded to CPAN
=item 0.02
Modified the code some to make it behave more generically
view all matches for this distribution
view release on metacpan or search on metacpan
==============================================================================
AVAILABILITY
Attribute::Handlers::Prospective has been uploaded to the CPAN
and is also available from:
http://www.csse.monash.edu.au/~damian/CPAN/Attribute-Handlers-Prospective.tar.gz
==============================================================================
view all matches for this distribution
view release on metacpan or search on metacpan
==============================================================================
AVAILABILITY
Attribute::Types has been uploaded to the CPAN
and is also available from:
http://www.csse.monash.edu.au/~damian/CPAN/Attribute-Types.tar.gz
==============================================================================
view all matches for this distribution
view release on metacpan or search on metacpan
print "failed to remove $filename\n";
}
Audio::RaveMP::files_uncache();
}
sub ravemp_upload ($;$) {
my($self, $arg) = @_;
my($file, $name) = split /\s+/, $arg;
my @files = Xmms::filecomplete($file);
for $file (@files) {
my $base = Xmms::basename($file);
$name = @files > 1 ? $base : $name || $base;
print "uploading $file to $name...";
if ($rmp->upload($file, $name)) {
print "done\n";
}
else {
print "failed\n";
}
$rmp->show_status(1);
$rmp->show_status(0);
=item upload
Upload a file. The second argument is the name to upload to, which is
optional and defaults to the upload name:
unless ($rmp->upload("we_eat_rhythm.mp3")) {
print "upload failed\n";
}
unless ($rmp->upload("we_eat_rhythm.mp3", "We Eat Rhythm")) {
print "upload failed\n";
}
=item remove
Remove a file specified by the give slot number:
List mp3 files in the player:
xmms> ravemp_track
=item ravemp_upload
Upload files:
xmms> ravemp_upload /usr/local/mp3/prodigy/what_evil_lurks/*.mp3
=item ravemp_download
Download files specified by slot or filename:
view all matches for this distribution
view release on metacpan or search on metacpan
* Some perlcritic suggestions
2016-12-08 Dave Cross <dave@dave.org.uk>
* lib/AudioFile/Info/MP3/ID3Lib.pm: Bump version for another upload attempt
* lib/AudioFile/Info/MP3/ID3Lib.pm: Documentation typo
* Build.PL, lib/AudioFile/Info/MP3/ID3Lib.pm: Packaging fixes
view all matches for this distribution
view release on metacpan or search on metacpan
* Various test and documentation fixes
2016-12-08 Dave Cross <dave@dave.org.uk>
* lib/AudioFile/Info.pm: Bump version for another upload attempt
* Build.PL, lib/AudioFile/Info.pm: Remove explicit version from Build.PL.
* Build.PL, lib/AudioFile/Info.pm: Packaging fixes
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Authen/Libwrap.pm view on Meta::CPAN
In early 2003 I was contacted by another Perl developer who had developed an
XS interface to libwrap that covered more of the API than mine did.
Originally he offered it as a patch to my module, but at the time I wasn't
in a position to actively maintain anything on CPAN, so I suggested that he
upload it himself. I unfortunately lost the email thread to a disk crash.
As of December 2003 I don't see any other modules professing to support
libwrap om CPAN. If that person is still out there, please get in contact
with me, otherwise I'll plan on implementing some of these TODOs in the new
year:
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Authen/NZRealMe.pm view on Meta::CPAN
creating/editing the Service Provider metadata file
=item *
creating a bundle (zip file) containing metadata and certs for upload to the
IdP
=item *
generating AuthnRequest URLs
lib/Authen/NZRealMe.pm view on Meta::CPAN
validation it is likely that you will need to edit the file in a text editor to
fine tune the parameters - particularly if you need more than one Assertion
Consumer Service.
You will need to provide the SP metadata file to the RealMe login service. For
MTS you can upload the SP metadata file directly using the menu option on the
MTS site. If you need to revise the file you can simply upload a new version.
For ITE and PROD you will need to provide the metadata and also the certificate
files to RealMe - who will schedule an upload to the relevant services. You
can assemble a 'bundle' of the required files with this command:
nzrealme --conf-dir /etc/nzrealme make-bundle
lib/Authen/NZRealMe.pm view on Meta::CPAN
nzrealme --conf-dir /etc/nzrealme make-req
You can paste this URL into a browser and complete a log on. Once you have
logged on you will be redirected back to the URL for the ACS (as specified in
the SP metadata file that you uploaded). You can copy the ACS URL from your
browser and paste it into the following command to resolve the artifact passed
in the URL to an FLT:
nzrealme --conf-dir /etc/nzrealme resolve <ACS URL> <Request ID>
view all matches for this distribution
view release on metacpan or search on metacpan
0.02 Sat May 3 19:00 2008
- integer storage for Class::XSAccessor::Array.
0.01 Mon Mar 31 23:34 2008
- original version as uploaded to CPAN
view all matches for this distribution
view release on metacpan or search on metacpan
- Move all the XS code to a separate module since the
code may be useful without the funny scanning features.
(See Class::XSAccessor)
0.01 Mon Mar 31 17:09 2008
- original version as uploaded to CPAN.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/AxKit/App/TABOO/XSP/Article.pm view on Meta::CPAN
sub _write_file {
my %args = @_;
my $fh = new IO::File;
my $filename = $args{filename};
my $ext = $args{extension} || 'txt';
if ($args{upload}) {
($filename, $ext) = $args{upload}->filename =~ m/^(.*)\.(\w*)$/;
}
$filename = _sanatize_filename($filename);
my $i = 0;
while (-e $args{docroot} ."/articles/content/$args{primcat}/$filename/$filename.$ext") { # Append an incrementing number if the file exists
$i++;
lib/AxKit/App/TABOO/XSP/Article.pm view on Meta::CPAN
mkdir ($dir, 0775) || die "Failed to create directory " . $dir;
}
}
$lookupfile .= "$filename.$ext";
if ($fh->open("> " . $lookupfile)) {
if ($args{upload}) {
my $uploadedfh = $args{upload}->fh;
while (<$uploadedfh>) {
print $fh $_;
}
} else {
die "Error saving string to filename $filename.$ext" unless (($filename) && ($args{text}));
print $fh $args{text};
lib/AxKit/App/TABOO/XSP/Article.pm view on Meta::CPAN
=head2 C<E<lt>store-required/E<gt>>
This tag will check and store the data from the required fields. It
will check for either uploaded files, and the MIME types of that, or
take plain text and save it to a local file. It doesn't do many
security checks yet.
If the save was successful, it will redirect to C</articles/edit>, so
that the submitter can continue editing of non-required fields. To
lib/AxKit/App/TABOO/XSP/Article.pm view on Meta::CPAN
}
unless (@errors) { # OK, so far, so good
my %args = map { $_ => $cgi->param($_) } $cgi->param;
my $upload = $cgi->upload;
if ($upload->size > 0) {
$args{'filename'} = AxKit::App::TABOO::XSP::Article::_write_file(upload=>$upload, primcat => $args{'primcat'}, docroot=>$r->document_root);
$args{'mimetype'} = $upload->type;
} else {
$args{'filename'} = AxKit::App::TABOO::XSP::Article::_write_file(filename=>$args{'filename'}, text=>$args{'text'}, primcat => $args{'primcat'}, docroot=>$r->document_root);
$args{'mimetype'} = 'text/plain';
}
# TODO: Security sanity checks.
lib/AxKit/App/TABOO/XSP/Article.pm view on Meta::CPAN
}
sub this_article : struct attribOrChild(primcat) {
return << 'EOC'
my %args = map { $_ => $cgi->param($_) } $cgi->param;
my $upload = $cgi->upload;
my $lookupurl = AxKit::App::TABOO::XSP::Article::_write_file($upload, $attr_primcat, $r->document_root);
$args{'format'} = $upload->type;
# TODO: Security sanity checks.
unless ($args{'date'}) {
my $timestamp = localtime;
$args{'date'} = $timestamp->datetime;
view all matches for this distribution
view release on metacpan or search on metacpan
'textfield($name;$default,$width,$maxlength,$index,$onvalidate,$onload,$disabled,$onchange)',
'password($name;$default,$width,$maxlength,$index,$onvalidate,$onload,$disabled,$onchange)',
'submit($name;$value,$image,$alt,$border,$align,$goto,$index,$onsubmit,$disabled,$onclick)',
'cancel($name;$value,$image,$alt,$border,$align,$goto,$index,$oncancel,$disabled,$onclick)',
'checkbox($name;$value,$checked,$label,$index,$onvalidate,$onload,$disabled,$onclick)',
'file_upload($name;$value,$accept,$onvalidate,$onload,$disabled,$onclick)',
'hidden($name;$value,$index,$onload)',
'textarea($name;$cols,$rows,$wrap,$default,$index,$onvalidate,$onload,$disabled,$onchange)',
'single_select($name;$default,$index,$onvalidate,$onload,$disabled,$onchange,*options):itemtag=option',
'multi_select($name;@default,$index,$onvalidate,$onload,$disabled,$onclick,*option):itemtag=option',
);
($onclick ? (onclick => $onclick) : ()),
}
};
}
sub file_upload ($;$$$$$$) {
my ($name, $value, $accept, $onval, $onload, $disabled, $onclick) = @_;
my ($package) = caller;
no strict 'refs';
my $error;
# validate
if ($params->{"__submitting_$fname"}) {
if (my $sub = $package->can($onval || "validate_${name}")) {
my $upload = Apache::Request->instance(Apache->request)->upload($name);
my $filename;
if ($upload) {
$filename = $upload->filename;
$filename =~ s/.*[\\\/]//; # strip to just a filename
$filename =~ s/[^\w\.-]//g; # strip non-word chars
}
eval {
$sub->($ctxt,
($upload ?
( $filename,
$upload->fh,
$upload->size,
$upload->type,
$upload->info
) :
()
)
);
};
else {
$params->{$name} = $value;
}
return {
file_upload => {
name => $name,
value => $params->{$name},
accept => $accept,
($disabled ? (disabled => $disabled) : ()),
($onclick ? (onclick => $onclick) : ()),
the shopping list. When one of the submit buttons is pressed, the
submit_SubmitBuy callback will be triggered (as part of the submission
procedure) and the browser will redirect to a page that handles the purchase
of the associated item.
NOTE: arrays not supported for file-upload elements.
=head1 XSP INHERITANCE
Starting with AxKit 1.6.1 it is possible to specify a class which your XSP
page inherits from. All the validate, load, submit and cancel functions can
Validate the value in the checkbox. Throw an exception to indicate
validation failure.
=back
=head2 <f:file-upload/>
A file upload field (normally in HTML, a text entry box, and a "Browse..."
button).
B<Attributes:>
=over 4
=item name (mandatory)
The name of the file upload field.
=item value
A default filename to put in the box. Use with care because putting
something in here is not very user friendly!
=over 4
=item load_<name> ( $ctxt, $default, $current )
Load a new value into the file upload field. Return the value to go in the
field.
=item validate_<name> ( $ctxt, $filename, $fh, $size, $type, $info )
Validate the uploaded file. This is also actually the place where you would
save the file to disk somewhere, by reading from $fh and writing to
somewhere else, or using File::Copy to do that for you. It is much harder to
access the file from the submit callback.
If the file is somehow invalid, throw an exception with the text of why it
view all matches for this distribution
view release on metacpan or search on metacpan
plugins/parse_post_data view on Meta::CPAN
By default AxKit2 does not process C<POST> data, leaving this entirely up to
the plugin to do that if it so requires. This plugin parses C<POST> form data
and places that data in the client's C<param()> API.
Currently only processes forms of type "application/x-www-form-urlencoded" which
is the default for HTML forms, but also means that file upload is not yet
supported.
=head1 CONFIG
None.
view all matches for this distribution
view release on metacpan or search on metacpan
* Hangs in C/CC executables at an op_free(PL_main_root) trying to free
the static op structs because the earlier op_seq -1 hack is gone now,
and opt_static was replaced by opt_latefree. Set now opt_latefree = 1.
This fixed tests 1 and 13. Slowly making progress step by step.
1.04_12 2008-03-16 rurban (first upload)
* Fixed bug #40435 CC: Can't locate object method "_save_common_middle"
via package "B::FAKEOP"
* move tests from [bc]*.t into shared TESTS file.
* fixed remaining ugly Bytecode bug in B::AV::bsave
* added jitcompiler macros
1.04_03 2008-02-05 rurban
* added Jit and Asm layout, fixed Makefile deps
1.04_02 2008-01-22 rurban (never uploaded)
* removed from CORE, now on CPAN.
* added byteorder to bytecode header.
* added support for 5.10 (NOT WORKING!), 5.9.5 not tested.
up to 5.8.x already in CORE, so disabled.
add back support later, when C/CC is improved or more features
* added type hekindex
* added c.t and cc.t tests
* extended bytecode.pl format: added version logic
to have strictly consecutive indices
1.04_01 2008-01-15 rurban (never uploaded)
* first package layout for all now non-CORE packages.
===================================================================
B::C was at 1.05 when removed from core with 5.9.4.
view all matches for this distribution
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
pod2text \$(VERSION_FROM) > README
release : dist
echo git commit -a -m\"release \$(VERSION)\"
git tag \$(VERSION)
cpan-upload \$(DISTVNAME).tar\$(SUFFIX)
git push
git push --tags
"
}
view all matches for this distribution
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
README : Flags.pm
pod2text Flags.pm > README
release : dist
echo git commit -a -m\"release \$(VERSION)\"
git tag \$(VERSION)
cpan-upload \$(DISTVNAME).tar\$(SUFFIX)
git push
git push --tags
test_cover :: pure_all
\$(RM_RF) cover_db
view all matches for this distribution
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
pod2markdown \$(VERSION_FROM) > \$@
release : dist
echo git commit -a -m\"release \$(VERSION)\"
git tag \$(VERSION)
cpan-upload \$(DISTVNAME).tar\$(SUFFIX)
git push
git push --tags
test_cover :: pure_all
\$(RM_RF) cover_db
view all matches for this distribution
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
README : \$(VERSION_FROM)
pod2text \$(VERSION_FROM) > README
release : dist
git tag \$(VERSION)
cpan-upload \$(DISTVNAME).tar\$(SUFFIX)
git push
git push --tags
"
}
view all matches for this distribution
view release on metacpan or search on metacpan
Revision history for B-Lint-Pluggable
0.01_01 2006-02-16
Just uploading my ~/src/B-Lint-Pluggable to CPAN, polish to come later.
0.02 2007-03-18
Just require the latest B::Lint. Argh. This module is too much of a pain to live.
1.00 sometime in the past
view all matches for this distribution
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
pod2markdown \$(VERSION_FROM) > \$@
release : README.md dist
test -z \"\$(shell git diff --raw)\" || exit
git tag \$(VERSION)
cpan-upload \$(DISTVNAME).tar\$(SUFFIX)
git push
git push --tags
test_cover :: pure_all
\$(RM_RF) cover_db
view all matches for this distribution
view release on metacpan or search on metacpan
xt/win32_matrix.pl view on Meta::CPAN
# PERLIO or PERL_UNICODE, no interactive STDIN,
# and AUTOMATED_TESTING set; the author's shell
# has the opposite of all of that
#
# Each of the three t/0020 failures, and the t/0015 and t/0019 ones,
# would have been caught here before upload. See rule R5 in
# t/lib/BATsh_TestOS.pm.
#
# The environment axis is rule R6, and it is why every cell runs in a
# SCRUBBED environment by default rather than in the author's. A cell
# that inherits the author's %ENV reproduces the author's box, which
view all matches for this distribution
view release on metacpan or search on metacpan
t/bbackupd.conf view on Meta::CPAN
DataDirectory = /var/bbackupd
# This script is run whenever bbackupd encounters a problem which requires
# the system administrator to assist:
# 1) The store is full, and no more data can be uploaded.
# 2) Some files or directories were not readable.
# The default script emails the system administrator.
NotifyScript = /etc/box/bbackupd/NotifySysadmin.sh
# This configuration file is written for snapshot mode.
# You will need to run bbackupctl to instruct the daemon to upload files.
# AutomaticBackup = no
# UpdateStoreInterval = 0
# MinimumFileAge = 0
# MaxUploadWait = 0
t/bbackupd.conf view on Meta::CPAN
MinimumFileAge = 21600
MaxUploadWait = 86400
# Files above this size (in bytes) are tracked, and if they are renamed they will simply be
# renamed on the server, rather than being uploaded again. (64k - 1)
FileTrackingSizeThreshold = 65535
# The daemon does "changes only" uploads for files above this size (in bytes).
# Files less than it are uploaded whole without this extra processing.
DiffingUploadSizeThreshold = 8192
# The limit on how much time is spent diffing files. Most files shouldn't take very long,
# but if you have really big files you can use this to limit the time spent diffing them.
# * Reduce if you are having problems with processor usage.
# * Increase if you have large files, and think the upload of changes is too large and want
# to spend more time searching for unchanged blocks.
MaximumDiffingTime = 20
view all matches for this distribution
view release on metacpan or search on metacpan
lib/BBS/DiscuzX2.pm view on Meta::CPAN
'allownoticeauthor' => $data->{notice_author} // 1,
'wysiwyg' => '1',
'newalbum' => '',
'posttime' => '',
'save' => '',
'uploadalbum' => '',
],
);
return unless($res->is_success);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/BBS/Universal.pm view on Meta::CPAN
$self->files_list_summary(FALSE);
return ($self->load_menu('files/main/files_menu'));
},
'UPLOAD FILE' => sub {
my $self = shift;
$self->files_upload_choices();
return ($self->load_menu('files/main/files_menu'));
},
'LIST FILES DETAILED' => sub {
my $self = shift;
$self->files_list_detailed(FALSE);
lib/BBS/Universal.pm view on Meta::CPAN
my $sth;
my $filter;
if ($search) {
$self->prompt('Search for (blank for all)');
$filter = $self->get_line({ 'type' => STRING, 'max' => 255, 'default' => '' });
$sth = $self->{'dbh'}->prepare('SELECT * FROM files_view WHERE (filename LIKE ? OR title LIKE ?) AND category_id=? ORDER BY uploaded DESC');
$sth->execute('%' . $filter . '%', '%' . $filter . '%', $self->{'USER'}->{'file_category'});
} else {
$sth = $self->{'dbh'}->prepare('SELECT * FROM files_view WHERE category_id=? ORDER BY uploaded DESC');
$sth->execute($self->{'USER'}->{'file_category'});
}
my @files;
my $max_filename = 10;
my $max_title = 20;
lib/BBS/Universal.pm view on Meta::CPAN
return (FALSE);
}
} ## end while ($self->is_connected...)
} ## end sub files_choices
sub files_upload_choices {
my ($self) = @_;
my $ckey;
$self->prompt('File Name? ');
my $file = $self->get_line({ 'type' => FILENAME, 'max' => 255, 'default' => '' });
lib/BBS/Universal.pm view on Meta::CPAN
$self->{'debug'}->ERROR(["File Transfer Aborted: $!"]);
} else {
$self->{'debug'}->DEBUG(['File Transfer Successful']);
}
return (TRUE);
} ## end sub files_upload_choices
sub files_list_detailed {
my ($self, $search) = @_;
$self->{'debug'}->DEBUG(['Start Files List Detailed']);
lib/BBS/Universal.pm view on Meta::CPAN
my $filter;
my $columns = $self->{'USER'}->{'max_columns'};
if ($search) {
$self->prompt('Search for');
$filter = $self->get_line({ 'type' => STRING, 'max' => 255, 'default' => '' });
$sth = $self->{'dbh'}->prepare('SELECT * FROM files_view WHERE (filename LIKE ? OR title LIKE ?) AND category_id=? ORDER BY uploaded DESC');
$sth->execute('%' . $filter . '%', '%' . $filter . '%', $self->{'USER'}->{'file_category'});
} else {
$sth = $self->{'dbh'}->prepare('SELECT * FROM files_view WHERE category_id=? ORDER BY uploaded DESC');
$sth->execute($self->{'USER'}->{'file_category'});
}
my @files;
if ($sth->rows > 0) {
$self->{'debug'}->DEBUGMAX(\@files);
lib/BBS/Universal.pm view on Meta::CPAN
$self->output('[% B_BLUE %][% BRIGHT WHITE %] UPLOADER [% RESET %] ' . $record->{'nickname'} . "\n");
} else {
$self->output('[% B_BLUE %][% BRIGHT WHITE %] UPLOADER [% RESET %] ' . $record->{'fullname'} . "\n");
}
$self->output('[% B_BLUE %][% BRIGHT WHITE %] FILE TYPE [% RESET %] ' . $record->{'type'} . "\n");
$self->output('[% B_BLUE %][% BRIGHT WHITE %] UPLOADED [% RESET %] ' . $record->{'uploaded'} . "\n");
$self->output('[% B_BLUE %][% BRIGHT WHITE %] THUMBS [% RESET %] [% THUMBS UP SIGN %] ' . (0 + $record->{'thumbs_up'}) . ' [% THUMBS DOWN SIGN %] ' . (0 + $record->{'tumbs_down'}) . "\n");
$self->output('[% HORIZONTAL RULE GREEN %]' . "\n");
} else {
$self->output("\n TITLE: " . $record->{'title'} . "\n");
$self->output(' FILENAME: ' . $record->{'filename'} . "\n");
lib/BBS/Universal.pm view on Meta::CPAN
$self->output(' UPLOADER: ' . $record->{'nickname'} . "\n");
} else {
$self->output(' UPLOADER: ' . $record->{'fullname'} . "\n");
}
$self->output(' FILE TYPE: ' . $record->{'type'} . "\n");
$self->output(' UPLOADED: ' . $record->{'uploaded'} . "\n");
$self->output(' THUMBS UP: ' . (0 + $record->{'thumbs_up'}) . "\n");
$self->output('THUMBS DOWN: ' . (0 + $record->{'thumbs_down'}) . "\n");
} ## end else [ if ($mode eq 'ANSI') ]
last unless ($self->files_choices($record));
} ## end foreach my $record (@files)
lib/BBS/Universal.pm view on Meta::CPAN
unless ($sock) {
$self->{'debug'}->ERROR(["No client socket for ZMODEM receive"]);
return 0;
}
$self->output("\nStart Zmodem file upload\n");
# When rz receives files it writes them into the current working directory.
# Use the destination directory from config (same place other uploads are stored).
my $dest_dir = $self->{'CONF'}->{'BBS ROOT'} . '/' . $self->{'CONF'}->{'FILES PATH'} . '/' . $self->{'USER'}->{'file_category_path'};
# ensure directory exists
unless (-d $dest_dir) {
File::Path::mkpath($dest_dir);
lib/BBS/Universal.pm view on Meta::CPAN
# Use rz --binary --quiet. Depending on lrzsz version you may want --overwrite or --keep
my @args = ('--binary', '--overwrite', '--quiet');
my $ok = $self->_run_on_socket('rz', \@args, $dest_dir);
$self->output("\nFile upload complete\n");
$self->{'debug'}->DEBUG(['End files_receive_file_zmodem (using lrzsz)']);
return $ok;
} ## end sub files_receive_file_zmodem
lib/BBS/Universal.pm view on Meta::CPAN
# Default user capability flags
$self->{'flags_default'} = {
'prefer_nickname' => 'ON',
'view_files' => 'ON',
'upload_files' => 'OFF',
'download_files' => 'ON',
'remove_files' => 'OFF',
'read_message' => 'ON',
'post_message' => 'ON',
'remove_message' => 'OFF',
lib/BBS/Universal.pm view on Meta::CPAN
timeout
retro_systems
accomplishments
prefer_nickname
view_files
upload_files
download_files
remove_files
play_fortunes
read_message
post_message
lib/BBS/Universal.pm view on Meta::CPAN
'retro_systems' => { 'type' => STRING, 'max' => 120, 'min' => 40 },
'accomplishments' => { 'type' => STRING, 'max' => 120, 'min' => 40 },
'prefer_nickname' => { 'type' => BOOLEAN, 'max' => 5, 'min' => 5, 'choices' => ['ON', 'OFF'], 'default' => 'OFF' },
'view_files' => { 'type' => BOOLEAN, 'max' => 5, 'min' => 5, 'choices' => ['ON', 'OFF'], 'default' => 'ON' },
'banned' => { 'type' => BOOLEAN, 'max' => 5, 'min' => 5, 'choices' => ['ON', 'OFF'], 'default' => 'OFF' },
'upload_files' => { 'type' => BOOLEAN, 'max' => 5, 'min' => 5, 'choices' => ['ON', 'OFF'], 'default' => 'OFF' },
'download_files' => { 'type' => BOOLEAN, 'max' => 5, 'min' => 5, 'choices' => ['ON', 'OFF'], 'default' => 'OFF' },
'remove_files' => { 'type' => BOOLEAN, 'max' => 5, 'min' => 5, 'choices' => ['ON', 'OFF'], 'default' => 'OFF' },
'read_message' => { 'type' => BOOLEAN, 'max' => 5, 'min' => 5, 'choices' => ['ON', 'OFF'], 'default' => 'ON' },
'post_message' => { 'type' => BOOLEAN, 'max' => 5, 'min' => 5, 'choices' => ['ON', 'OFF'], 'default' => 'OFF' },
'remove_message' => { 'type' => BOOLEAN, 'max' => 5, 'min' => 5, 'choices' => ['ON', 'OFF'], 'default' => 'OFF' },
lib/BBS/Universal.pm view on Meta::CPAN
} ## end foreach my $name (keys %{$row...})
} ## end while (my $row = $sth->fetchrow_hashref...)
$sth->finish();
my $table;
if ($wsize > 150) {
$table = Text::SimpleTable->new(max(5, $sizes->{'title'}), max(8, $sizes->{'filename'}), max(4, $sizes->{'type'}), max(11, $sizes->{'description'}), max(8, $sizes->{'username'}), max(4, $sizes->{'file_size'}), max(8, $sizes->{'uploaded'}), ma...
$table->row('TITLE', 'FILENAME', 'TYPE', 'DESCRIPTION', 'UPLOADER', 'SIZE', 'UPLOADED', 'THUMBS UP', 'THUMBS DOWN');
} else {
$table = Text::SimpleTable->new(max(5, $sizes->{'filename'}), max(8, $sizes->{'title'}), max(4, $sizes->{'extension'}), max(11, $sizes->{'description'}), max(8, $sizes->{'username'}), max(4, $sizes->{'file_size'}), max(9, $sizes->{'thumbs_up'...
$table->row('TITLE', 'FILENAME', 'TYPE', 'DESCRIPTION', 'UPLOADER', 'SIZE', 'THUMBS UP', 'THUMBS DOWN');
}
lib/BBS/Universal.pm view on Meta::CPAN
$sth->execute($self->{'USER'}->{'file_category'});
my $category;
while (my $row = $sth->fetchrow_hashref()) {
if ($wsize > 150) {
$table->row($row->{'title'}, $row->{'filename'}, $row->{'type'}, $row->{'description'}, $row->{'username'}, format_number($row->{'file_size'}), $row->{'uploaded'}, sprintf('%-06u', $row->{'thumbs_up'}), sprintf('%-06u', $row->{'thumbs_dow...
} else {
$table->row($row->{'title'}, $row->{'filename'}, $row->{'extension'}, $row->{'description'}, $row->{'username'}, format_number($row->{'file_size'}), sprintf('%-06u', $row->{'thumbs_up'}), sprintf('%-06u', $row->{'thumbs_down'}));
}
$category = $row->{'category'};
} ## end while (my $row = $sth->fetchrow_hashref...)
lib/BBS/Universal.pm view on Meta::CPAN
do {
$key = uc($self->sysop_keypress());
} until ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ' =~ /$key/i);
if ($key !~ /$key_exit/i) {
print 'Edit > (', $choice{$key}, ' = ', $user_row->{ $choice{$key} }, ') > ';
if ($choice{$key} =~ /^(play_fortunes|prefer_nickname|view_files|upload_files|download_files|remove_files|read_message|post_message|remove_message|sysop)$/) {
$user_row->{ $choice{$key} } = ($user_row->{ $choice{$key} } == 1) ? 0 : 1;
my $sth = $self->{'dbh'}->prepare('UPDATE permissions SET ' . $choice{$key} . '= !' . $choice{$key} . ' WHERE id=?');
$sth->execute($user_row->{'id'});
$sth->finish();
} elsif($choice{$key} =~ /text_mode/) {
lib/BBS/Universal.pm view on Meta::CPAN
my $new = $self->sysop_get_line($self->{'SYSOP FIELD TYPES'}->{ $choice{$key} }, $user_row->{ $choice{$key} });
$user_row->{ $choice{$key} } = $new;
my $sth = $self->{'dbh'}->prepare('UPDATE users SET ' . $choice{$key} . '=? WHERE id=?');
$sth->execute($new, $user_row->{'id'});
$sth->finish();
} ## end else [ if ($choice{$key} =~ /^(prefer_nickname|view_files|upload_files|download_files|remove_files|read_message|post_message|remove_message|sysop)$/)]
} else {
print "BACK\n";
}
} until ($key =~ /$key_exit/i);
} elsif ($search ne '') {
lib/BBS/Universal.pm view on Meta::CPAN
unless ($new eq '') {
$new =~ s/^(Yes|On)$/1/i;
$new =~ s/^(No|Off)$/0/i;
}
$user_row->{ $choice{$key} } = $new;
if ($key =~ /prefer_nickname|view_files|upload_files|download_files|remove_files|read_message|post_message|remove_message|sysop/) {
my $sth = $self->{'dbh'}->prepare('UPDATE permissions SET ' . choice { $key } . '=? WHERE id=?');
$sth->execute($new, $user_row->{'id'});
$sth->finish();
} else {
my $sth = $self->{'dbh'}->prepare('UPDATE users SET ' . $choice{$key} . '=? WHERE id=?');
lib/BBS/Universal.pm view on Meta::CPAN
foreach my $field ( # For numeric values
qw(
show_email
prefer_nickname
view_files
upload_files
download_files
remove_files
read_message
post_message
remove_message
lib/BBS/Universal.pm view on Meta::CPAN
q{
INSERT INTO permissions (
id,
prefer_nickname,
view_files,
upload_files,
download_files,
remove_files,
read_message,
show_email,
post_message,
lib/BBS/Universal.pm view on Meta::CPAN
play_fortunes,
timeout)
VALUES (LAST_INSERT_ID(),?,?,?,?,?,?,?,?,?,?,?,?,?);
}
);
$sth->execute($user_template->{'prefer_nickname'}, $user_template->{'view_files'}, $user_template->{'upload_files'}, $user_template->{'download_files'}, $user_template->{'remove_files'}, $user_template->{'read_message'}, $user_template->{'show_em...
my $response;
if ($self->{'dbh'}->err) {
$self->{'dbh'}->rollback;
$sth->finish();
lib/BBS/Universal.pm view on Meta::CPAN
$table .= sprintf('%-15s=%-25s', 'TEXT MODE', $self->{'USER'}->{'text_mode'}) . "\n";
$table .= sprintf('%-15s=%-25s', 'IDLE TIMEOUT', $self->{'USER'}->{'timeout'}) . "\n";
$table .= sprintf('%-15s=%-25s', 'SHOW EMAIL', $self->yes_no($self->{'USER'}->{'show_email'}, FALSE)) . "\n";
$table .= sprintf('%-15s=%-25s', 'PREFER NICKNAME', $self->yes_no($self->{'USER'}->{'prefer_nickname'}, FALSE)) . "\n";
$table .= sprintf('%-15s=%-25s', 'VIEW FILES', $self->yes_no($self->{'USER'}->{'view_files'}, FALSE)) . "\n";
$table .= sprintf('%-15s=%-25s', 'UPLOAD FILES', $self->yes_no($self->{'USER'}->{'upload_files'}, FALSE)) . "\n";
$table .= sprintf('%-15s=%-25s', 'DOWNLOAD FILES', $self->yes_no($self->{'USER'}->{'download_files'}, FALSE)) . "\n";
$table .= sprintf('%-15s=%-25s', 'REMOVE FILES', $self->yes_no($self->{'USER'}->{'remove_files'}, FALSE)) . "\n";
$table .= sprintf('%-15s=%-25s', 'READ MESSAGES', $self->yes_no($self->{'USER'}->{'read_message'}, FALSE)) . "\n";
$table .= sprintf('%-15s=%-25s', 'POST MESSAGES', $self->yes_no($self->{'USER'}->{'post_message'}, FALSE)) . "\n";
$table .= sprintf('%-15s=%-25s', 'REMOVE MESSAGES', $self->yes_no($self->{'USER'}->{'remove_message'}, FALSE)) . "\n";
lib/BBS/Universal.pm view on Meta::CPAN
$table->row('BIRTHDAY', $self->users_get_date($self->{'USER'}->{'birthday'}), 'LOCATION', $self->{'USER'}->{'location'});
$table->row('BAUD RATE', $self->{'USER'}->{'baud_rate'}, 'LAST LOGIN', $self->users_get_date($self->{'USER'}->{'login_time'}));
$table->row('DATE FORMAT', $self->{'USER'}->{'date_format'}, 'LAST LOGOUT', $self->users_get_date($self->{'USER'}->{'logout_time'}));
$table->row('IDLE TIMEOUT', $self->{'USER'}->{'timeout'}, 'TEXT MODE', $self->{'USER'}->{'text_mode'});
$table->row('PREFER NICKNAME', $self->yes_no($self->{'USER'}->{'prefer_nickname'}, FALSE), 'VIEW FILES', $self->yes_no($self->{'USER'}->{'view_files'}, FALSE));
$table->row('UPLOAD FILES', $self->yes_no($self->{'USER'}->{'upload_files'}, FALSE), 'DOWNLOAD FILES', $self->yes_no($self->{'USER'}->{'download_files'}, FALSE));
$table->row('REMOVE FILES', $self->yes_no($self->{'USER'}->{'remove_files'}, FALSE), 'READ MESSAGES', $self->yes_no($self->{'USER'}->{'read_message'}, FALSE));
$table->row('POST MESSAGES', $self->yes_no($self->{'USER'}->{'post_message'}, FALSE), 'REMOVE MESSAGES', $self->yes_no($self->{'USER'}->{'remove_message'}, FALSE));
$table->row('SHOW EMAIL', $self->yes_no($self->{'USER'}->{'show_email'}, FALSE), 'ACCESS LEVEL', $self->{'USER'}->{'access_level'});
$table->row('PLAY FORTUNES', $self->yes_no($self->{'USER'}->{'play_fortunes'}, FALSE), 'ACCOMPLISHMENTS', $self->{'USER'}->{'accomplishments'});
$table->row('RETRO SYSTEMS', $self->{'USER'}->{'retro_systems'},'','');
lib/BBS/Universal.pm view on Meta::CPAN
$table->row('TEXT MODE', $self->{'USER'}->{'text_mode'});
$table->row('IDLE TIMEOUT', $self->{'USER'}->{'timeout'});
$table->row('SHOW EMAIL', $self->yes_no($self->{'USER'}->{'show_email'}, FALSE));
$table->row('PREFER NICKNAME', $self->yes_no($self->{'USER'}->{'prefer_nickname'}, FALSE));
$table->row('VIEW FILES', $self->yes_no($self->{'USER'}->{'view_files'}, FALSE));
$table->row('UPLOAD FILES', $self->yes_no($self->{'USER'}->{'upload_files'}, FALSE));
$table->row('DOWNLOAD FILES', $self->yes_no($self->{'USER'}->{'download_files'}, FALSE));
$table->row('REMOVE FILES', $self->yes_no($self->{'USER'}->{'remove_files'}, FALSE));
$table->row('READ MESSAGES', $self->yes_no($self->{'USER'}->{'read_message'}, FALSE));
$table->row('POST MESSAGES', $self->yes_no($self->{'USER'}->{'post_message'}, FALSE));
$table->row('REMOVE MESSAGES', $self->yes_no($self->{'USER'}->{'remove_message'}, FALSE));
view all matches for this distribution
view release on metacpan or search on metacpan
0.07 2017-10-30
- remove the B::CompilerPhase::Hook dependency
and replace it with Devel::Hook
0.06 2017-08-19
- managed to upload the last one without a
Makefile.PL, this should fix this.
0.05 2017-08-14
- remove enforcement of BEGIN time, it will
just work at runtime as well
view all matches for this distribution
view release on metacpan or search on metacpan
- Added CPAN meta data
- Updated README
- Added pod for BERT::Constants and BERT::Types
0.02 Wed Aug 3 05:32:13 PHT 2011
- Bumped up version to replace the incorrect tar ball previously uploaded to CPAN.
0.01 Wed Aug 3 04:50:27 PHT 2011
- First version, released on an unsuspecting world.
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Makefile.pm view on Meta::CPAN
Copy the contents of the C<blib> directory into the appropriate
directories in your Perl installation.
=item * dist
Create a distribution tarball, ready for uploading to CPAN or sharing
with a friend.
=item * clean distclean purge
Remove the files created by C<perl Makefile.PL> and C<make>.
view all matches for this distribution
view release on metacpan or search on metacpan
testing/write-config.pl view on Meta::CPAN
sub main {
my @tasks = (
pre(qw/dynamicVars cleanUp fetchSource downloadPerl5Lib/),
post(qw/cleanUp/),
task( build => [qw/whichPerl buildModule uploadBuildArtifacts/] ),
task(
test => [qw/whichPerl downloadBuildArtifacts testModule/],
depends_on => 'build'
),
);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/BackPAN/Index/File.pm view on Meta::CPAN
=head2 date
my $date = $file->date;
Returns the upload date of the file, in UNIX epoch seconds.
=head2 path
my $path = $file->path;
view all matches for this distribution