line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package WWW::Google::UserAgent::DataTypes; |
2
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
$WWW::Google::UserAgent::DataTypes::VERSION = '0.21'; |
4
|
|
|
|
|
|
|
$WWW::Google::UserAgent::DataTypes::AUTHORITY = 'cpan:MANWAR'; |
5
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
=head1 NAME |
7
|
|
|
|
|
|
|
|
8
|
|
|
|
|
|
|
WWW::Google::UserAgent::DataTypes - Commonly used data types for Google API. |
9
|
|
|
|
|
|
|
|
10
|
|
|
|
|
|
|
=head1 VERSION |
11
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
Version 0.21 |
13
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
=cut |
15
|
|
|
|
|
|
|
|
16
|
1
|
|
|
1
|
|
943
|
use 5.006; |
|
1
|
|
|
|
|
4
|
|
17
|
1
|
|
|
1
|
|
5
|
use strict; use warnings; |
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
|
|
15
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
20
|
|
18
|
|
|
|
|
|
|
|
19
|
1
|
|
|
1
|
|
4
|
use Data::Dumper; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
40
|
|
20
|
1
|
|
|
1
|
|
5
|
use base qw(Type::Library); |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
436
|
|
21
|
1
|
|
|
1
|
|
16551
|
use Type::Utils -all; |
|
1
|
|
|
|
|
3410
|
|
|
1
|
|
|
|
|
8
|
|
22
|
1
|
|
|
1
|
|
3572
|
use Types::Standard qw(:all); |
|
1
|
|
|
|
|
71408
|
|
|
1
|
|
|
|
|
11
|
|
23
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
my $LANGUAGES = { |
25
|
|
|
|
|
|
|
'ar' => 1, 'eu' => 1, 'bg' => 1, 'bn' => 1, 'ca' => 1, 'cs' => 1, 'da' => 1, 'de' => 1, |
26
|
|
|
|
|
|
|
'el' => 1, 'en' => 1, 'en-au' => 1, 'en-gb' => 1, 'es' => 1, 'eu' => 1, 'fa' => 1, 'fi' => 1, |
27
|
|
|
|
|
|
|
'fi' => 1, 'fr' => 1, 'gl' => 1, 'gu' => 1, 'hi' => 1, 'hr' => 1, 'hu' => 1, 'id' => 1, |
28
|
|
|
|
|
|
|
'it' => 1, 'iw' => 1, 'ja' => 1, 'kn' => 1, 'ko' => 1, 'lt' => 1, 'lv' => 1, 'ml' => 1, |
29
|
|
|
|
|
|
|
'mr' => 1, 'nl' => 1, 'no' => 1, 'pl' => 1, 'pt' => 1, 'pt-br' => 1, 'pt-pt' => 1, 'ro' => 1, |
30
|
|
|
|
|
|
|
'ru' => 1, 'sk' => 1, 'sl' => 1, 'sr' => 1, 'sv' => 1, 'tl' => 1, 'ta' => 1, 'te' => 1, |
31
|
|
|
|
|
|
|
'th' => 1, 'tr' => 1, 'uk' => 1, 'vi' => 1, 'zh-cn' => 1, 'zh-tw' => 1 |
32
|
|
|
|
|
|
|
}; |
33
|
|
|
|
|
|
|
|
34
|
|
|
|
|
|
|
my $LOCALES = { |
35
|
|
|
|
|
|
|
'ar' => 'Arabic', 'bg' => 'Bulgarian', 'ca' => 'Catalan', 'zh_tw' => 'Traditional Chinese (Taiwan)', |
36
|
|
|
|
|
|
|
'zh_cn' => 'Simplified Chinese', 'fr' => 'Croatian', 'cs' => 'Czech', 'da' => 'Danish', |
37
|
|
|
|
|
|
|
'nl' => 'Dutch', 'en_us' => 'English', 'en_gb' => 'English UK', 'fil' => 'Filipino', |
38
|
|
|
|
|
|
|
'fi' => 'Finnish', 'fr' => 'French', 'de' => 'German', 'el' => 'Greek', |
39
|
|
|
|
|
|
|
'lw' => 'Hebrew', 'hi' => 'Hindi', 'hu' => 'Hungarian', 'id' => 'Indonesian', |
40
|
|
|
|
|
|
|
'it' => 'Italian', 'ja' => 'Japanese', 'ko' => 'Korean', 'lv' => 'Latvian', |
41
|
|
|
|
|
|
|
'lt' => 'Lithuanian', 'no' => 'Norwegian', 'pl' => 'Polish', 'pr_br' => 'Portuguese (Brazilian)', |
42
|
|
|
|
|
|
|
'pt_pt' => 'Portuguese (Portugal)', 'ro' => 'Romanian', 'ru' => 'Russian', 'sr' => 'Serbian', |
43
|
|
|
|
|
|
|
'sk' => 'Slovakian', 'sl' => 'Slovenian', 'es' => 'Spanish', 'sv' => 'Swedish', |
44
|
|
|
|
|
|
|
'th' => 'Thai', 'tr' => 'Turkish', 'uk' => 'Ukrainian', 'vi' => 'Vietnamese', |
45
|
|
|
|
|
|
|
}; |
46
|
|
|
|
|
|
|
|
47
|
|
|
|
|
|
|
my $LANGUAGE_COLLECTION = { |
48
|
|
|
|
|
|
|
'lang_ar' => 1, 'lang_bg' => 1, 'lang_ca' => 1, 'lang_zh-cn' => 1, 'lang_zh-tw' => 1, |
49
|
|
|
|
|
|
|
'lang_hr' => 1, 'lang_cs' => 1, 'lang_da' => 1, 'lang_nl' => 1, 'lang_en' => 1, |
50
|
|
|
|
|
|
|
'lang_et' => 1, 'lang_fi' => 1, 'lang_fr' => 1, 'lang_de' => 1, 'lang_el' => 1, |
51
|
|
|
|
|
|
|
'lang_iw' => 1, 'lang_hu' => 1, 'lang_is' => 1, 'lang_id' => 1, 'lang_it' => 1, |
52
|
|
|
|
|
|
|
'lang_ja' => 1, 'lang_ko' => 1, 'lang_lv' => 1, 'lang_lt' => 1, 'lang_no' => 1, |
53
|
|
|
|
|
|
|
'lang_pl' => 1, 'lang_pt' => 1, 'lang_ro' => 1, 'lang_ru' => 1, 'lang_sr' => 1, |
54
|
|
|
|
|
|
|
'lang_sk' => 1, 'lang_sl' => 1, 'lang_es' => 1, 'lang_sv' => 1, 'lang_tr' => 1 |
55
|
|
|
|
|
|
|
}; |
56
|
|
|
|
|
|
|
|
57
|
|
|
|
|
|
|
my $COUNTRY_COLLECTION = { |
58
|
|
|
|
|
|
|
'countryaf' => 1, 'countryal' => 1, 'countrydz' => 1, 'countryas' => 1, 'countryad' => 1, |
59
|
|
|
|
|
|
|
'countryao' => 1, 'countryai' => 1, 'countryaq' => 1, 'countryag' => 1, 'countryar' => 1, |
60
|
|
|
|
|
|
|
'countryam' => 1, 'countryaw' => 1, 'countryau' => 1, 'countryat' => 1, 'countryaz' => 1, |
61
|
|
|
|
|
|
|
'countrybs' => 1, 'countrybh' => 1, 'countrybd' => 1, 'countrybb' => 1, 'countryby' => 1, |
62
|
|
|
|
|
|
|
'countrybe' => 1, 'countrybz' => 1, 'countrybj' => 1, 'countrybm' => 1, 'countrybt' => 1, |
63
|
|
|
|
|
|
|
'countrybo' => 1, 'countryba' => 1, 'countrybw' => 1, 'countrybv' => 1, 'countrybr' => 1, |
64
|
|
|
|
|
|
|
'countryio' => 1, 'countrybn' => 1, 'countrybg' => 1, 'countrybf' => 1, 'countrybi' => 1, |
65
|
|
|
|
|
|
|
'countrykh' => 1, 'countrycm' => 1, 'countryca' => 1, 'countrycv' => 1, 'countryky' => 1, |
66
|
|
|
|
|
|
|
'countrycf' => 1, 'countrytd' => 1, 'countrycl' => 1, 'countrycn' => 1, 'countrycx' => 1, |
67
|
|
|
|
|
|
|
'countrycc' => 1, 'countryco' => 1, 'countrykm' => 1, 'countrycg' => 1, 'countrycd' => 1, |
68
|
|
|
|
|
|
|
'countryck' => 1, 'countrycr' => 1, 'countryci' => 1, 'countryhr' => 1, 'countrycu' => 1, |
69
|
|
|
|
|
|
|
'countrycy' => 1, 'countrycz' => 1, 'countrydk' => 1, 'countrydj' => 1, 'countrydm' => 1, |
70
|
|
|
|
|
|
|
'countrydo' => 1, 'countrytp' => 1, 'countryec' => 1, 'countryeg' => 1, 'countrysv' => 1, |
71
|
|
|
|
|
|
|
'countrygq' => 1, 'countryer' => 1, 'countryee' => 1, 'countryet' => 1, 'countryeu' => 1, |
72
|
|
|
|
|
|
|
'countryfk' => 1, 'countryfo' => 1, 'countryfj' => 1, 'countryfi' => 1, 'countryfr' => 1, |
73
|
|
|
|
|
|
|
'countryfx' => 1, 'countrygf' => 1, 'countrypf' => 1, 'countrytf' => 1, 'countryga' => 1, |
74
|
|
|
|
|
|
|
'countrygm' => 1, 'countryge' => 1, 'countryde' => 1, 'countrygh' => 1, 'countrygi' => 1, |
75
|
|
|
|
|
|
|
'countrygr' => 1, 'countrygl' => 1, 'countrygd' => 1, 'countrygp' => 1, 'countrygu' => 1, |
76
|
|
|
|
|
|
|
'countrygt' => 1, 'countrygn' => 1, 'countrygw' => 1, 'countrygy' => 1, 'countryht' => 1, |
77
|
|
|
|
|
|
|
'countryhm' => 1, 'countryva' => 1, 'countryhn' => 1, 'countryhk' => 1, 'countryhu' => 1, |
78
|
|
|
|
|
|
|
'countryis' => 1, 'countryin' => 1, 'countryid' => 1, 'countryir' => 1, 'countryiq' => 1, |
79
|
|
|
|
|
|
|
'countryie' => 1, 'countryil' => 1, 'countryit' => 1, 'countryjm' => 1, 'countryjp' => 1, |
80
|
|
|
|
|
|
|
'countryjo' => 1, 'countrykz' => 1, 'countryke' => 1, 'countryki' => 1, 'countrykp' => 1, |
81
|
|
|
|
|
|
|
'countrykr' => 1, 'countrykw' => 1, 'countrykg' => 1, 'countryla' => 1, 'countrylv' => 1, |
82
|
|
|
|
|
|
|
'countrylb' => 1, 'countryls' => 1, 'countrylr' => 1, 'countryly' => 1, 'countryli' => 1, |
83
|
|
|
|
|
|
|
'countrylt' => 1, 'countrylu' => 1, 'countrymo' => 1, 'countrymk' => 1, 'countrymg' => 1, |
84
|
|
|
|
|
|
|
'countrymw' => 1, 'countrymy' => 1, 'countrymv' => 1, 'countryml' => 1, 'countrymt' => 1, |
85
|
|
|
|
|
|
|
'countrymh' => 1, 'countrymq' => 1, 'countrymr' => 1, 'countrymu' => 1, 'countryyt' => 1, |
86
|
|
|
|
|
|
|
'countrymx' => 1, 'countryfm' => 1, 'countrymd' => 1, 'countrymc' => 1, 'countrymn' => 1, |
87
|
|
|
|
|
|
|
'countryms' => 1, 'countryma' => 1, 'countrymz' => 1, 'countrymm' => 1, 'countryna' => 1, |
88
|
|
|
|
|
|
|
'countrynr' => 1, 'countrynp' => 1, 'countrynl' => 1, 'countryan' => 1, 'countrync' => 1, |
89
|
|
|
|
|
|
|
'countrynz' => 1, 'countryni' => 1, 'countryne' => 1, 'countryng' => 1, 'countrynu' => 1, |
90
|
|
|
|
|
|
|
'countrynf' => 1, 'countrymp' => 1, 'countryno' => 1, 'countryom' => 1, 'countrypk' => 1, |
91
|
|
|
|
|
|
|
'countrypw' => 1, 'countryps' => 1, 'countrypa' => 1, 'countrypg' => 1, 'countrypy' => 1, |
92
|
|
|
|
|
|
|
'countrype' => 1, 'countryph' => 1, 'countrypn' => 1, 'countrypl' => 1, 'countrypt' => 1, |
93
|
|
|
|
|
|
|
'countrypr' => 1, 'countryqa' => 1, 'countryre' => 1, 'countryro' => 1, 'countryru' => 1, |
94
|
|
|
|
|
|
|
'countryrw' => 1, 'countrysh' => 1, 'countrykn' => 1, 'countrylc' => 1, 'countrypm' => 1, |
95
|
|
|
|
|
|
|
'countryvc' => 1, 'countryws' => 1, 'countrysm' => 1, 'countryst' => 1, 'countrysa' => 1, |
96
|
|
|
|
|
|
|
'countrysn' => 1, 'countrycs' => 1, 'countrysc' => 1, 'countrysl' => 1, 'countrysg' => 1, |
97
|
|
|
|
|
|
|
'countrysk' => 1, 'countrysi' => 1, 'countrysb' => 1, 'countryso' => 1, 'countryza' => 1, |
98
|
|
|
|
|
|
|
'countrygs' => 1, 'countryes' => 1, 'countrylk' => 1, 'countrysd' => 1, 'countrysr' => 1, |
99
|
|
|
|
|
|
|
'countrysj' => 1, 'countrysz' => 1, 'countryse' => 1, 'countrych' => 1, 'countrysy' => 1, |
100
|
|
|
|
|
|
|
'countrytw' => 1, 'countrytj' => 1, 'countrytz' => 1, 'countryth' => 1, 'countrytg' => 1, |
101
|
|
|
|
|
|
|
'countrytk' => 1, 'countryto' => 1, 'countrytt' => 1, 'countrytn' => 1, 'countrytr' => 1, |
102
|
|
|
|
|
|
|
'countrytm' => 1, 'countrytc' => 1, 'countrytv' => 1, 'countryug' => 1, 'countryua' => 1, |
103
|
|
|
|
|
|
|
'countryae' => 1, 'countryuk' => 1, 'countryus' => 1, 'countryum' => 1, 'countryuy' => 1, |
104
|
|
|
|
|
|
|
'countryuz' => 1, 'countryvu' => 1, 'countryve' => 1, 'countryvn' => 1, 'countryvg' => 1, |
105
|
|
|
|
|
|
|
'countryvi' => 1, 'countrywf' => 1, 'countryeh' => 1, 'countryye' => 1, 'countryyu' => 1, |
106
|
|
|
|
|
|
|
'countryzm' => 1, 'countryzw' => 1 |
107
|
|
|
|
|
|
|
}; |
108
|
|
|
|
|
|
|
|
109
|
|
|
|
|
|
|
my $COUNTRY_CODE = { |
110
|
|
|
|
|
|
|
'af' => 1, 'al' => 1, 'dz' => 1, 'as' => 1, 'ad' => 1, 'ao' => 1, 'ai' => 1, 'aq' => 1, |
111
|
|
|
|
|
|
|
'ag' => 1, 'ar' => 1, 'am' => 1, 'aw' => 1, 'au' => 1, 'at' => 1, 'az' => 1, 'bs' => 1, |
112
|
|
|
|
|
|
|
'bh' => 1, 'bd' => 1, 'bb' => 1, 'by' => 1, 'be' => 1, 'bz' => 1, 'bj' => 1, 'bm' => 1, |
113
|
|
|
|
|
|
|
'bt' => 1, 'bo' => 1, 'ba' => 1, 'bw' => 1, 'bv' => 1, 'br' => 1, 'io' => 1, 'bn' => 1, |
114
|
|
|
|
|
|
|
'bg' => 1, 'bf' => 1, 'bi' => 1, 'kh' => 1, 'cm' => 1, 'ca' => 1, 'cv' => 1, 'ky' => 1, |
115
|
|
|
|
|
|
|
'cf' => 1, 'td' => 1, 'cl' => 1, 'cn' => 1, 'cx' => 1, 'cc' => 1, 'co' => 1, 'km' => 1, |
116
|
|
|
|
|
|
|
'cg' => 1, 'cd' => 1, 'ck' => 1, 'cr' => 1, 'ci' => 1, 'hr' => 1, 'cu' => 1, 'cy' => 1, |
117
|
|
|
|
|
|
|
'cz' => 1, 'dk' => 1, 'dj' => 1, 'dm' => 1, 'do' => 1, 'ec' => 1, 'eg' => 1, 'sv' => 1, |
118
|
|
|
|
|
|
|
'gq' => 1, 'er' => 1, 'ee' => 1, 'et' => 1, 'fk' => 1, 'fo' => 1, 'fj' => 1, 'fi' => 1, |
119
|
|
|
|
|
|
|
'fr' => 1, 'gf' => 1, 'pf' => 1, 'tf' => 1, 'ga' => 1, 'gm' => 1, 'ge' => 1, 'de' => 1, |
120
|
|
|
|
|
|
|
'gh' => 1, 'gi' => 1, 'gr' => 1, 'gl' => 1, 'gd' => 1, 'gp' => 1, 'gu' => 1, 'gt' => 1, |
121
|
|
|
|
|
|
|
'gn' => 1, 'gw' => 1, 'gy' => 1, 'ht' => 1, 'hm' => 1, 'va' => 1, 'hn' => 1, 'hk' => 1, |
122
|
|
|
|
|
|
|
'hu' => 1, 'is' => 1, 'in' => 1, 'id' => 1, 'ir' => 1, 'iq' => 1, 'ie' => 1, 'il' => 1, |
123
|
|
|
|
|
|
|
'it' => 1, 'jm' => 1, 'jp' => 1, 'jo' => 1, 'kz' => 1, 'ke' => 1, 'ki' => 1, 'kp' => 1, |
124
|
|
|
|
|
|
|
'kr' => 1, 'kw' => 1, 'kg' => 1, 'la' => 1, 'lv' => 1, 'lb' => 1, 'ls' => 1, 'lr' => 1, |
125
|
|
|
|
|
|
|
'ly' => 1, 'li' => 1, 'lt' => 1, 'lu' => 1, 'mo' => 1, 'mk' => 1, 'mg' => 1, 'mw' => 1, |
126
|
|
|
|
|
|
|
'my' => 1, 'mv' => 1, 'ml' => 1, 'mt' => 1, 'mh' => 1, 'mq' => 1, 'mr' => 1, 'mu' => 1, |
127
|
|
|
|
|
|
|
'yt' => 1, 'mx' => 1, 'fm' => 1, 'md' => 1, 'mc' => 1, 'mn' => 1, 'ms' => 1, 'ma' => 1, |
128
|
|
|
|
|
|
|
'mz' => 1, 'mm' => 1, 'na' => 1, 'nr' => 1, 'np' => 1, 'nl' => 1, 'an' => 1, 'nc' => 1, |
129
|
|
|
|
|
|
|
'nz' => 1, 'ni' => 1, 'ne' => 1, 'ng' => 1, 'nu' => 1, 'nf' => 1, 'mp' => 1, 'no' => 1, |
130
|
|
|
|
|
|
|
'om' => 1, 'pk' => 1, 'pw' => 1, 'ps' => 1, 'pa' => 1, 'pg' => 1, 'py' => 1, 'pe' => 1, |
131
|
|
|
|
|
|
|
'ph' => 1, 'pn' => 1, 'pl' => 1, 'pt' => 1, 'pr' => 1, 'qa' => 1, 're' => 1, 'ro' => 1, |
132
|
|
|
|
|
|
|
'ru' => 1, 'rw' => 1, 'sh' => 1, 'kn' => 1, 'lc' => 1, 'pm' => 1, 'vc' => 1, 'ws' => 1, |
133
|
|
|
|
|
|
|
'sm' => 1, 'st' => 1, 'sa' => 1, 'sn' => 1, 'cs' => 1, 'sc' => 1, 'sl' => 1, 'sg' => 1, |
134
|
|
|
|
|
|
|
'sk' => 1, 'si' => 1, 'sb' => 1, 'so' => 1, 'za' => 1, 'gs' => 1, 'es' => 1, 'lk' => 1, |
135
|
|
|
|
|
|
|
'sd' => 1, 'sr' => 1, 'sj' => 1, 'sz' => 1, 'se' => 1, 'ch' => 1, 'sy' => 1, 'tw' => 1, |
136
|
|
|
|
|
|
|
'tj' => 1, 'tz' => 1, 'th' => 1, 'tl' => 1, 'tg' => 1, 'tk' => 1, 'to' => 1, 'tt' => 1, |
137
|
|
|
|
|
|
|
'tn' => 1, 'tr' => 1, 'tm' => 1, 'tc' => 1, 'tv' => 1, 'ug' => 1, 'ua' => 1, 'ae' => 1, |
138
|
|
|
|
|
|
|
'uk' => 1, 'us' => 1, 'um' => 1, 'uy' => 1, 'uz' => 1, 'vu' => 1, 've' => 1, 'vn' => 1, |
139
|
|
|
|
|
|
|
'vg' => 1, 'vi' => 1, 'wf' => 1, 'eh' => 1, 'ye' => 1, 'zm' => 1, 'zw' => 1, |
140
|
|
|
|
|
|
|
}; |
141
|
|
|
|
|
|
|
|
142
|
|
|
|
|
|
|
my $INTERFACE_LANGUAGE = { |
143
|
|
|
|
|
|
|
'af' => 1, 'sq' => 1, 'sm' => 1, 'ar' => 1, 'az' => 1, 'eu' => 1, 'be' => 1, 'bn' => 1, 'bh' => 1, |
144
|
|
|
|
|
|
|
'bs' => 1, 'bg' => 1, 'ca' => 1, 'zh-cn' => 1, 'zh-tw' => 1, 'hr' => 1, 'cs' => 1, 'da' => 1, 'nl' => 1, |
145
|
|
|
|
|
|
|
'en' => 1, 'eo' => 1, 'et' => 1, 'fo' => 1, 'fi' => 1, 'fr' => 1, 'fy' => 1, 'gl' => 1, 'ka' => 1, |
146
|
|
|
|
|
|
|
'de' => 1, 'el' => 1, 'gu' => 1, 'iw' => 1, 'hi' => 1, 'hu' => 1, 'is' => 1, 'id' => 1, 'ia' => 1, |
147
|
|
|
|
|
|
|
'ga' => 1, 'it' => 1, 'ja' => 1, 'jw' => 1, 'kn' => 1, 'ko' => 1, 'la' => 1, 'lv' => 1, 'lt' => 1, |
148
|
|
|
|
|
|
|
'mk' => 1, 'ms' => 1, 'ml' => 1, 'mt' => 1, 'mr' => 1, 'ne' => 1, 'no' => 1, 'nn' => 1, 'oc' => 1, |
149
|
|
|
|
|
|
|
'fa' => 1, 'pl' => 1, 'pt-br' => 1, 'pt-pt' => 1, 'pa' => 1, 'ro' => 1, 'ru' => 1, 'gd' => 1, 'sr' => 1, |
150
|
|
|
|
|
|
|
'si' => 1, 'sk' => 1, 'sl' => 1, 'es' => 1, 'su' => 1, 'sw' => 1, 'sv' => 1, 'tl' => 1, 'ta' => 1, |
151
|
|
|
|
|
|
|
'te' => 1, 'th' => 1, 'ti' => 1, 'tr' => 1, 'uk' => 1, 'ur' => 1, 'uz' => 1, 'vi' => 1, 'cy' => 1, |
152
|
|
|
|
|
|
|
'xh' => 1, 'zu' => 1 |
153
|
|
|
|
|
|
|
}; |
154
|
|
|
|
|
|
|
|
155
|
|
|
|
|
|
|
my $DOMINANT_COLOR = { |
156
|
|
|
|
|
|
|
'black' => 1, 'blue' => 1, 'brown' => 1, 'gray' => 1, 'green' => 1, |
157
|
|
|
|
|
|
|
'pink' => 1, 'purple' => 1, 'teal' => 1, 'white' => 1, 'yellow' => 1, |
158
|
|
|
|
|
|
|
}; |
159
|
|
|
|
|
|
|
|
160
|
|
|
|
|
|
|
my $COLOR_TYPE = { |
161
|
|
|
|
|
|
|
'color' => 1, 'gray' => 1, 'mono' => 1, |
162
|
|
|
|
|
|
|
}; |
163
|
|
|
|
|
|
|
|
164
|
|
|
|
|
|
|
my $IMAGE_SIZE = { |
165
|
|
|
|
|
|
|
'huge' => 1, 'icon' => 1, 'large' => 1, 'medium' => 1, |
166
|
|
|
|
|
|
|
'small' => 1, 'xlarge' => 1, 'xxlarge'=> 1, |
167
|
|
|
|
|
|
|
}; |
168
|
|
|
|
|
|
|
|
169
|
|
|
|
|
|
|
my $IMAGE_TYPE = { 'clipart' => 1, 'face' => 1, 'lineart' => 1, 'news' => 1, 'photo' => 1 }; |
170
|
|
|
|
|
|
|
my $RIGHTS = { 'cc_publicdomain' => 1, 'cc_attribute' => 1, 'cc_sharealike' => 1, 'cc_noncommercial' => 1, 'cc_nonderived' => 1 }; |
171
|
|
|
|
|
|
|
my $SEARCH_TYPE = { 'image' => 1 }; |
172
|
|
|
|
|
|
|
my $SEARCH_FILTER = { 'e' => 1, 'i' => 1 }; |
173
|
|
|
|
|
|
|
my $SAFETY_LEVEL = { 'off' => 1, 'medium' => 1, 'high' => 1 }; |
174
|
|
|
|
|
|
|
|
175
|
|
|
|
|
|
|
declare "ColorType" , as Str, where { (!defined($_) || (exists($COLOR_TYPE->{lc($_)}))) }; |
176
|
|
|
|
|
|
|
declare "DominantColor", as Str, where { (!defined($_) || (exists($DOMINANT_COLOR->{lc($_)}))) }; |
177
|
|
|
|
|
|
|
declare "ImageSize" , as Str, where { (!defined($_) || (exists($IMAGE_SIZE->{lc($_)}))) }; |
178
|
|
|
|
|
|
|
declare "ImageType" , as Str, where { (!defined($_) || (exists($IMAGE_TYPE->{lc($_)}))) }; |
179
|
|
|
|
|
|
|
declare "Rights" , as Str, where { (!defined($_) || (exists($RIGHTS->{lc($_)}))) }; |
180
|
|
|
|
|
|
|
declare "SearchType" , as Str, where { (!defined($_) || (exists($SEARCH_TYPE->{lc($_)}))) }; |
181
|
|
|
|
|
|
|
declare "SearchFilter" , as Str, where { (!defined($_) || (exists($SEARCH_FILTER->{lc($_)}))) }; |
182
|
|
|
|
|
|
|
declare "SafetyLevel" , as Str, where { (!defined($_) || (exists($SAFETY_LEVEL->{lc($_)}))) }; |
183
|
|
|
|
|
|
|
declare "InterfaceLang", as Str, where { (!defined($_) || (exists($INTERFACE_LANGUAGE->{lc($_)}))) }; |
184
|
|
|
|
|
|
|
declare "CountryCode" , as Str, where { (!defined($_) || (exists($COUNTRY_CODE->{lc($_)}))) }; |
185
|
|
|
|
|
|
|
declare "LanguageC" , as Str, where { (!defined($_) || (exists($LANGUAGE_COLLECTION->{lc($_)}))) }; |
186
|
|
|
|
|
|
|
declare "CountryC" , as Str, where { (!defined($_) || (exists($COUNTRY_COLLECTION->{lc($_)}))) }; |
187
|
|
|
|
|
|
|
declare "Language" , as Str, where { (!defined($_) || (exists($LANGUAGES->{lc($_)}))) }; |
188
|
|
|
|
|
|
|
declare "Locale" , as Str, where { (!defined($_) || (exists($LOCALES->{lc($_)}))) }; |
189
|
|
|
|
|
|
|
declare "Strategy" , as Str, where { (!defined($_) || ($_ =~ m(^\bdesktop\b|\bmobile\b$)i)) }; |
190
|
|
|
|
|
|
|
declare "FileType" , as Str, where { (!defined($_) || ($_ =~ m(^\bjson\b|\bxml\b$)i)) }; |
191
|
|
|
|
|
|
|
declare "TrueFalse" , as Str, where { (!defined($_) || ($_ =~ m(^\btrue\b|\bfalse\b$)i)) }; |
192
|
|
|
|
|
|
|
declare "Unit" , as Str, where { (!defined($_) || ($_ =~ m(^\bmetric\b|\bimperial\b$)i)) }; |
193
|
|
|
|
|
|
|
declare "Avoid" , as Str, where { (!defined($_) || ($_ =~ m(^\btolls\b|\bhighways\b$)i)) }; |
194
|
|
|
|
|
|
|
declare "Mode" , as Str, where { (!defined($_) || ($_ =~ m(^\bdriving\b|\bwalking\b|\bbicycling\b$)i)) }; |
195
|
|
|
|
|
|
|
|
196
|
|
|
|
|
|
|
=head1 DESCRIPTION |
197
|
|
|
|
|
|
|
|
198
|
|
|
|
|
|
|
B |
199
|
|
|
|
|
|
|
|
200
|
|
|
|
|
|
|
=head1 AUTHOR |
201
|
|
|
|
|
|
|
|
202
|
|
|
|
|
|
|
Mohammad S Anwar, C<< >> |
203
|
|
|
|
|
|
|
|
204
|
|
|
|
|
|
|
=head1 REPOSITORY |
205
|
|
|
|
|
|
|
|
206
|
|
|
|
|
|
|
L |
207
|
|
|
|
|
|
|
|
208
|
|
|
|
|
|
|
=head1 BUGS |
209
|
|
|
|
|
|
|
|
210
|
|
|
|
|
|
|
Please report any bugs or feature requests to C
|
211
|
|
|
|
|
|
|
rt.cpan.org>,or through the web interface at L. |
212
|
|
|
|
|
|
|
I will be notified, and then you'll automatically be notified of progress on your |
213
|
|
|
|
|
|
|
bug as I make changes. |
214
|
|
|
|
|
|
|
|
215
|
|
|
|
|
|
|
=head1 SUPPORT |
216
|
|
|
|
|
|
|
|
217
|
|
|
|
|
|
|
You can find documentation for this module with the perldoc command. |
218
|
|
|
|
|
|
|
|
219
|
|
|
|
|
|
|
perldoc WWW::Google::UserAgent::DataTypes |
220
|
|
|
|
|
|
|
|
221
|
|
|
|
|
|
|
You can also look for information at: |
222
|
|
|
|
|
|
|
|
223
|
|
|
|
|
|
|
=over 4 |
224
|
|
|
|
|
|
|
|
225
|
|
|
|
|
|
|
=item * RT: CPAN's request tracker (report bugs here) |
226
|
|
|
|
|
|
|
|
227
|
|
|
|
|
|
|
L |
228
|
|
|
|
|
|
|
|
229
|
|
|
|
|
|
|
=item * AnnoCPAN: Annotated CPAN documentation |
230
|
|
|
|
|
|
|
|
231
|
|
|
|
|
|
|
L |
232
|
|
|
|
|
|
|
|
233
|
|
|
|
|
|
|
=item * CPAN Ratings |
234
|
|
|
|
|
|
|
|
235
|
|
|
|
|
|
|
L |
236
|
|
|
|
|
|
|
|
237
|
|
|
|
|
|
|
=item * Search CPAN |
238
|
|
|
|
|
|
|
|
239
|
|
|
|
|
|
|
L |
240
|
|
|
|
|
|
|
|
241
|
|
|
|
|
|
|
=back |
242
|
|
|
|
|
|
|
|
243
|
|
|
|
|
|
|
=head1 LICENSE AND COPYRIGHT |
244
|
|
|
|
|
|
|
|
245
|
|
|
|
|
|
|
Copyright (C) 2014 - 2015 Mohammad S Anwar. |
246
|
|
|
|
|
|
|
|
247
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify it under |
248
|
|
|
|
|
|
|
the terms of the the Artistic License (2.0). You may obtain a copy of the full |
249
|
|
|
|
|
|
|
license at: |
250
|
|
|
|
|
|
|
|
251
|
|
|
|
|
|
|
L |
252
|
|
|
|
|
|
|
|
253
|
|
|
|
|
|
|
Any use, modification, and distribution of the Standard or Modified Versions is |
254
|
|
|
|
|
|
|
governed by this Artistic License.By using, modifying or distributing the Package, |
255
|
|
|
|
|
|
|
you accept this license. Do not use, modify, or distribute the Package, if you do |
256
|
|
|
|
|
|
|
not accept this license. |
257
|
|
|
|
|
|
|
|
258
|
|
|
|
|
|
|
If your Modified Version has been derived from a Modified Version made by someone |
259
|
|
|
|
|
|
|
other than you,you are nevertheless required to ensure that your Modified Version |
260
|
|
|
|
|
|
|
complies with the requirements of this license. |
261
|
|
|
|
|
|
|
|
262
|
|
|
|
|
|
|
This license does not grant you the right to use any trademark, service mark, |
263
|
|
|
|
|
|
|
tradename, or logo of the Copyright Holder. |
264
|
|
|
|
|
|
|
|
265
|
|
|
|
|
|
|
This license includes the non-exclusive, worldwide, free-of-charge patent license |
266
|
|
|
|
|
|
|
to make, have made, use, offer to sell, sell, import and otherwise transfer the |
267
|
|
|
|
|
|
|
Package with respect to any patent claims licensable by the Copyright Holder that |
268
|
|
|
|
|
|
|
are necessarily infringed by the Package. If you institute patent litigation |
269
|
|
|
|
|
|
|
(including a cross-claim or counterclaim) against any party alleging that the |
270
|
|
|
|
|
|
|
Package constitutes direct or contributory patent infringement,then this Artistic |
271
|
|
|
|
|
|
|
License to you shall terminate on the date that such litigation is filed. |
272
|
|
|
|
|
|
|
|
273
|
|
|
|
|
|
|
Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND |
274
|
|
|
|
|
|
|
CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED |
275
|
|
|
|
|
|
|
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR |
276
|
|
|
|
|
|
|
NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS |
277
|
|
|
|
|
|
|
REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, |
278
|
|
|
|
|
|
|
INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE |
279
|
|
|
|
|
|
|
OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
280
|
|
|
|
|
|
|
|
281
|
|
|
|
|
|
|
=cut |
282
|
|
|
|
|
|
|
|
283
|
|
|
|
|
|
|
1; # End of WWW::Google::UserAgent::DataTypes |