NAME

Data::URIID - Extractor for identifiers from URIs

VERSION

version v0.10

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".

language_tags

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 via ua 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)