class Clacky::Channel::Adapters::Weixin::Adapter
def fetch_typing_ticket(user_id, context_token)
Fetch (or return cached) typing_ticket for user_id.
def fetch_typing_ticket(user_id, context_token) @typing_mutex.synchronize do entry = @typing_tickets[user_id] if entry && (Time.now.to_i - entry[:cached_at]) < TYPING_TICKET_TTL return entry[:ticket] end end ticket = @api_client.get_typing_ticket( ilink_user_id: user_id, context_token: context_token ) return nil if ticket.empty? @typing_mutex.synchronize do @typing_tickets[user_id] = { ticket: ticket, cached_at: Time.now.to_i } end ticket rescue => e Clacky::Logger.warn("[WeixinAdapter] getconfig failed for #{user_id}: #{e.message}") nil end