Kurlyk
Loading...
Searching...
No Matches
user_agent_utils.hpp
Go to the documentation of this file.
1#pragma once
2#ifndef KURLYK_HEADER_KURLYK_UTILS_USER_AGENT_UTILS_HPP_INCLUDED
3#define KURLYK_HEADER_KURLYK_UTILS_USER_AGENT_UTILS_HPP_INCLUDED
4
7
8namespace kurlyk {
9namespace utils {
10
14 inline std::string convert_user_agent_to_sec_ch_ua(const std::string& user_agent) {
15 // Regular expression to extract the browser name and version from User-Agent
16 static const std::regex browser_regex(R"(Chrome/(\d+)\.\d+\.\d+\.\d+)");
17 std::string version = "0";
18
19 // Match the User-Agent string to extract the Chrome version
20 std::smatch match;
21 if (std::regex_search(user_agent, match, browser_regex) && match.size() > 1) {
22 version = match[1].str(); // Extract version number
23 }
24
25 // Generate sec-ch-ua header
26 std::string sec_ch_ua = "\"Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"" + version + "\", \"Chromium\";v=\"" + version + "\"";
27 return sec_ch_ua;
28 }
29
30} // namespace utils
31} // namespace kurlyk
32
33#endif // KURLYK_HEADER_KURLYK_UTILS_USER_AGENT_UTILS_HPP_INCLUDED
std::string convert_user_agent_to_sec_ch_ua(const std::string &user_agent)
Converts a User-Agent string to a sec-ch-ua header value.
Primary namespace for the Kurlyk library, encompassing initialization, request management,...