- Change logging to use Rails.logger.debug instead of Rails.logger.debugger for better compatibility. - Remove unnecessary extra lines in the Sidekiq jobs file. This commit ensures that log messages are recorded efficiently and with the correct log level, improving logging practices in the application.
75 lines
2.6 KiB
Ruby
75 lines
2.6 KiB
Ruby
class ApplicationController < ActionController::Base
|
|
include SeoConcern
|
|
# Only allow modern browsers supporting webp images, web push, badges, import maps, CSS nesting, and CSS :has.
|
|
before_action :log_browser_info
|
|
# allow_browser versions: :modern
|
|
# allow_browser versions: :modern,
|
|
# patterns: [
|
|
# # 鸿蒙系统相关
|
|
# /OpenHarmony/, # 鸿蒙系统标识
|
|
# /ArkWeb\/[\d.]+/, # 鸿蒙浏览器内核
|
|
# /Mobile HuaweiBrowser/, # 华为浏览器(新格式)
|
|
# /HuaweiBrowser\/[\d.]+/, # 华为浏览器(旧格式)
|
|
#
|
|
# # 夸克浏览器(更宽松的匹配)
|
|
# /Quark[\s\/][\d.]+/, # 匹配 "Quark/7.4.6.681" 或 "Quark 7.4.6.681"
|
|
#
|
|
# /Mobile Safari/,
|
|
# /Chrome\/[\d.]+/,
|
|
# /Quark\/[\d.]+/,
|
|
# /HuaweiBrowser\/[\d.]+/,
|
|
# /MiuiBrowser\/[\d.]+/,
|
|
# /VivoBrowser\/[\d.]+/,
|
|
# /OppoBrowser\/[\d.]+/,
|
|
# /UCBrowser\/[\d.]+/,
|
|
# /QQBrowser\/[\d.]+/,
|
|
# /MicroMessenger\/[\d.]+/,
|
|
# /Alipay/,
|
|
# /BaiduBoxApp/,
|
|
# /baiduboxapp/i,
|
|
# /SogouMobile/,
|
|
# /Weibo/,
|
|
# /DingTalk/,
|
|
# /ToutiaoMicroApp/,
|
|
# /BytedanceWebview/,
|
|
# /ArkWeb/
|
|
# ],
|
|
# on_failure: ->(browser) {
|
|
# Rails.logger.warn <<~BROWSER_INFO
|
|
# Browser Blocked:
|
|
# User Agent: #{browser.ua}
|
|
# Name: #{browser.name}
|
|
# Version: #{browser.version}
|
|
# Platform: #{browser.platform.name}
|
|
# Device: #{browser.device.name}
|
|
# Mobile: #{browser.mobile?}
|
|
# Modern: #{browser.modern?}
|
|
# Bot: #{browser.bot?}
|
|
# BROWSER_INFO
|
|
# }
|
|
before_action :set_locale
|
|
after_action :track_action
|
|
|
|
def log_browser_info
|
|
# 构建详细的浏览器信息
|
|
Rails.logger.debug "User Agent: #{request.user_agent}"
|
|
|
|
# 如果是被拦截的浏览器,记录额外信息
|
|
# unless browser_allowed?
|
|
# Rails.logger.info "User Agent: #{request.user_agent}"
|
|
# end
|
|
end
|
|
|
|
protected
|
|
|
|
def track_action
|
|
ahoy.track "Viewed Application", request.path_parameters
|
|
end
|
|
|
|
private
|
|
|
|
def set_locale
|
|
I18n.locale = params[:locale] || I18n.default_locale
|
|
end
|
|
end
|