NAME
Data::URIID - Extractor for identifiers from URIs
VERSION
version v0.11
SYNOPSIS
use Data::URIID;
my $extractor = Data::URIID->new;
my $result = $extractor->lookup( $uri );
my $id = $result->id( $type );
This module provides a way to extract knowledge (mainly identifier) from a given URL, a QR Code, or similar objects.
The main usages for this module are:
Provide information to display the object in question to the user (such as name, location, icons, thumbnails, and more)
Provide required identifiers and URLs to link the object with many services.
In order to do so, an extractor (instance of this package) is created. On that extractor "lookup" is called for every input to process resulting in a Data::URIID::Result object holding the acquired knowledge.
The module supports both online and offline lookups. See "online".
Note: Future versions of this module will depend on Data::Identifier.
METHODS
new
my $extractor = Data::URIID->new;
# or:
my $extractor = Data::URIID->new( option => value, ... );
Returns a new object that can be used for lookups. The following options are defined:
agent
-
User agent string to use if no
ua
is given.This should be set to something of valid user agent string syntax that reflects your application and contains contact details.
default_online
-
Boolean indicating whether online operation is allowed by default.
Default false. See also "default_online".
-
An arrayref with all acceptable language tags (most acceptable first).
Default
[I18N::LangTags::implicate_supers(I18N::LangTags::Detect::detect())]
See also "language_tags", I18N::LangTags, and I18N::LangTags::Detect Note: If you perform online lookups and passed a user agent viaua
it must also reflect this setting. online
-
Boolean indicating whether online operations are permitted.
Default false. See also "online".
ua
-
Useragent to use (LWP::UserAgent).
lookup
my $result = $extractor->lookup( $uri );
# or:
my $result = $extractor->lookup( $type, $uri );
Tries to look up the URI and returns the result. Takes an URI object (preferred) or a plain string as argument. Alternatively can internally also convert from Mojo::URL, Data::URIID::Service, Data::URIID::Result, and Data::URIID::Colour.
$type
is one of uri
, ise
, or qrcode
, an UUID, or an object of type URI or Data::URIID::Result. Defaults to uri
. When ise
an UUID or OID can be provided instead of an URI. When qrcode
the text content from an QR code can be provided.
This method will return a Data::URIID::Result if successful or die
otherwise.
online
my $online = $extractor->online( [ $new_value ] );
Gets or sets the online status of extractor. If this value is false no online operations are permitted. In addition to this value being true the online value for the services that should perform lookups need to be true.
See also "default_online".
default_online
my $online = $extractor->default_online( [ $new_value ] );
Gets or sets the default online value for Data::URIID::Service objects returned by "service". This value is only used if the service has not yet been accessed. Therefore it is often unsafe to alter this value. The corresponding "new" option should be used.
See also "online".
language_tags
my @language_tags = $extractor->language_tags( [ @new_value ] );
Gets or sets the list of acceptable language tags.
See also "new".
UTILITY METHODS
known
my @list = $extractor->known( $class );
Returns a list of known items of a class. Not all items may have the same level of support by this module. Class is one of service
, type
, action
, or :all
. If the class is given as :all
this module will return the lists for all classes but may also return additional entries known to it.
This method will return an array of ISEs if successful or die
otherwise.
name_to_ise
my $ise = $extractor->name_to_ise( $class => $name );
Tries to lookup an ISE for a given well known name. Class is one of service
, type
, or action
.
This method will return an ISE if successful or die
otherwise. This is the reverse of "ise_to_name".
ise_to_name
my $name = $extractor->ise_to_name( $class => $ise );
Tries to lookup a name for a given well known ISE. Class is one of service
, type
, or action
.
This method will return a name if successful or die
otherwise. This is the reverse of "name_to_ise".
is_ise
my $bool = $extractor->is_ise( $str );
Returns whether or not a string is a valid ISE.
service
my $service = $extractor->service( $service );
This method will return a Data::URIID::Service for the given name or ISE if successful or die
otherwise.
KNOWN/SUPPORTED SERVICES
For a list of known/supported services see "KNOWN/SUPPORTED SERVICES" in Data::URIID::Service.
AUTHOR
Löwenfelsen UG (haftungsbeschränkt) <support@loewenfelsen.net>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2023-2024 by Löwenfelsen UG (haftungsbeschränkt) <support@loewenfelsen.net>.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)