Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
hd-community-waf / usr / local / share / lua / 5.1 / resty / woothee / mobile_phone.lua
Size: Mime:
local _M = { }

local util = require('resty.woothee.util')
local dataset = require('resty.woothee.dataset')

function _M.challenge_docomo(ua, result)
  if not string.find(ua, 'DoCoMo', 1, true) and not string.find(ua, ';FOMA;', 1, true) then
    return false;
  end

  local version = dataset.VALUE_UNKNOWN;
  local match, err = nil
  match, err = util.check_regex(ua, [[DoCoMo/[.0-9]+[ /]([^- /;()"']+)]])
  if match then
    version = match[1];
  else
    match, err = util.check_regex(ua, [[%(([^;)]+);FOMA;]])
    if match then
      version = match[1];
    end
  end

  util.update_map(result, dataset.get('docomo'))
  util.update_version(result, version)
  return true;
end


function _M.challenge_au(ua, result)
  if not string.find(ua, 'KDDI-', 1, true) then
    return false
  end

  local version = dataset.VALUE_UNKNOWN;
  local match, err = util.check_regex(ua, [[KDDI%-([^- \/;()"']+)]])
  if match then
    version = match[1]
  end

  util.update_map(result, dataset.get('au'))
  util.update_version(result, version)
  return true
end


function _M.challenge_softbank(ua, result)
  if not string.find(ua, 'SoftBank', 1, true) and not string.find(ua, 'Vodafone', 1, true) and not string.find(ua, 'J-PHONE', 1, true) then
    return false
  end

  local version = dataset.VALUE_UNKNOWN;
  local match_regex_list = { [[SoftBank/[.0-9]+/([^ /;()]+)]], [[J-PHONE/[.0-9]+/([^ /;()]+)]], [[Vodafone/[.0-9]+/([^ /;()]+)]] }
  for _, regex in ipairs(match_regex_list) do
    local match, err = util.check_regex(ua, regex)
    if match then
      version = match[1]
      break
    end
  end

  util.update_map(result, dataset.get('SoftBank'))
  util.update_version(result, version)
  return true
end


function _M.challenge_willcom(ua, result)
  if not string.find(ua, 'WILLCOM', 1, true) and not string.find(ua, 'DDIPOCKET', 1, true) then
    return false
  end

  local version = dataset.VALUE_UNKNOWN;
  local match_regex_list = { [[DDIPOCKET;[^/]+/([^ /;()]+)]], [[WILLCOM;[^/]+/([^ /;()]+)]] }
  for _, regex in ipairs(match_regex_list) do
    local match, err = util.check_regex(ua, regex)
    if match then
      version = match[1]
      break
    end
  end

  util.update_map(result, dataset.get('willcom'))
  util.update_version(result, version)
  return true
end

function _M.challenge_misc(ua, result)
  if string.find(ua, 'jig browser', 1, true) then
    util.update_map(result, dataset.get('jig'))
    local match, err = util.check_regex(ua, [[jig browser[^;]+; ([^);]+)]])
    if match then
      util.update_version(result, match[1])
    end
    return true
  end

  if string.find(ua, 'emobile/', 1, true) or string.find(ua, 'OpenBrowser', 1, true) or string.find(ua, 'Browser/Obigo-Browser', 1, true) then
    util.update_map(result, dataset.get('emobile'))
    return true
  end

  if string.find(ua, 'SymbianOS', 1, true) then
    util.update_map(result, dataset.get('SymbianOS'))
    return true
  end

  if string.find(ua, 'Hatena-Mobile-Gateway/', 1, true) then
    util.update_map(result, dataset.get('MobileTranscoder'))
    util.update_version(result, 'Hatena')
    return true
  end

  if string.find(ua, 'livedoor-Mobile-Gateway/', 1, true) then
    util.update_map(result, dataset.get('MobileTranscoder'))
    util.update_version(result, 'livedoor')
    return true
  end

  return false
end

return _M