FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
uap-cpp/UaParser.h at master · aitech-lab/uap-cpp · GitHub
aitech-lab
uap-cpp
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
uap-cpp
/
UaParser.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
65 lines (46 loc) · 1.35 KB
Breadcrumbs
uap-cpp
/
UaParser.h
Copy path
File metadata and controls
65 lines (46 loc) · 1.35 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#
pragma
once
#
include
<
string
>
namespace
uap_cpp
{
struct
Generic
{
Generic
() : family(
"
Other
"
) {}
std::string family;
};
struct
Device
: Generic {
std::string model;
std::string brand;
};
struct
Agent
: Generic {
std::string major;
std::string minor;
std::string patch;
std::string patch_minor;
std::string
toString
()
const
{
return
family +
"
"
+
toVersionString
(); }
std::string
toVersionString
()
const
{
return
(major.
empty
() ?
"
0
"
: major) +
"
.
"
+ (minor.
empty
() ?
"
0
"
: minor) +
"
.
"
+ (patch.
empty
() ?
"
0
"
: patch);
}
};
struct
UserAgent
{
Device device;
Agent os;
Agent browser;
std::string
toFullString
()
const
{
return
browser.
toString
() +
"
/
"
+ os.
toString
();
}
bool
isSpider
()
const
{
return
device.
family
==
"
Spider
"
; }
};
enum
class
DeviceType
{
kUnknown
=
0
,
kDesktop
,
kMobile
,
kTablet
};
class
UserAgentParser
{
public:
explicit
UserAgentParser
(
const
std::string& regexes_file_path);
UserAgent
parse
(
const
std::string&)
const
noexcept
;
Device
parse_device
(
const
std::string&)
const
noexcept
;
Agent
parse_os
(
const
std::string&)
const
noexcept
;
Agent
parse_browser
(
const
std::string&)
const
noexcept
;
static
DeviceType
device_type
(
const
std::string&)
noexcept
;
~UserAgentParser
();
private:
const
std::string regexes_file_path_;
const
void
* ua_store_;
};
}
//
namespace uap_cpp
Back
|
FazBrowse Home
|
New Git URL