File: extended_twitter_entity.rb

package info (click to toggle)
mikutter 3.5.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 10,256 kB
  • ctags: 2,165
  • sloc: ruby: 19,079; sh: 205; makefile: 20
file content (27 lines) | stat: -rw-r--r-- 951 bytes parent folder | download | duplicates (2)
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
# -*- coding: utf-8 -*-
require_relative 'basic_twitter_entity'

module Retriever::Entity
  ExtendedTwitterEntity = BasicTwitterEntity.filter(
    Retriever::Entity::BasicTwitterEntity::MentionMatcher, generator: ->h{
      sn = Retriever::Entity::BasicTwitterEntity::MentionExactMatcher.match(h[:url])[1]
      user = Retriever::Model(:twitter_user)
      if user
        h[:open] = user.findbyidname(sn, Retriever::DataSource::USE_LOCAL_ONLY) ||
                        Retriever::URI.new("https://twitter.com/#{sn}")
      else
        h[:open] = Retriever::URI.new("https://twitter.com/#{sn}")
      end
      h
    }).filter(
    URI.regexp(%w[http https]), generator: ->h{
      h.merge(open: h[:url])
    }).filter(
    /(?:#|#)[a-zA-Z0-9_]+/, generator: ->h{
      twitter_search = Retriever::Model(:twitter_search)
      if twitter_search
        h[:open] = twitter_search.new(query: "##{h[:url][1..h[:url].size]}") end
      h
    })

end