noticesys 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/noticesys.rb +122 -0
- metadata +111 -0
- metadata.gz.sig +2 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8dd1393e55e8b90efda85d824f9a9ee9111a2802386c663e25f4b96e1f894cd6
|
4
|
+
data.tar.gz: add7a94854c0dd48d711772c8aa703731bf6d36484289be76a25f55cd6872827
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b521dc650d991b843ab5977b8150e8ad9809f5a11fc09d2afe8fa853cc5ee40e6def90a0ddcfb6718d12096738a2c16c44995093aff8491fe3ace6e6c852410f
|
7
|
+
data.tar.gz: 75357c37d9d1c8de344e3227a466e0345d96350b53a844dc2daf82b32f773715dbdcff1f2025f8397a0c51761aa6802823435c79ed4bdd184af17b45ab0c344f
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
data/lib/noticesys.rb
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# file: noticesys.rb
|
4
|
+
|
5
|
+
require 'down' # file downloader
|
6
|
+
require 'ogextractor' # extract metadata
|
7
|
+
|
8
|
+
|
9
|
+
module NoticeSys
|
10
|
+
|
11
|
+
class Client
|
12
|
+
|
13
|
+
def initialize(user='', rmagick=nil)
|
14
|
+
@user, @rmagick = user, rmagick
|
15
|
+
end
|
16
|
+
|
17
|
+
# params expected: msg, file1, file2, file3
|
18
|
+
#
|
19
|
+
def send_input(params={})
|
20
|
+
|
21
|
+
# save the file attachments containing the images etc.
|
22
|
+
|
23
|
+
files = (1..3).map do |n|
|
24
|
+
|
25
|
+
f = params['file' + n.to_s]
|
26
|
+
next unless f
|
27
|
+
|
28
|
+
original = f[:tempfile].to_path
|
29
|
+
|
30
|
+
scale_img original
|
31
|
+
|
32
|
+
end.compact
|
33
|
+
|
34
|
+
msg = params['msg']
|
35
|
+
|
36
|
+
urls = msg.scan(/https:\/\/[^ ]+/)
|
37
|
+
|
38
|
+
if urls.any? then
|
39
|
+
|
40
|
+
h2 = OgExtractor.new(urls.last).to_h
|
41
|
+
|
42
|
+
if h2 then
|
43
|
+
h = {msg: msg, files: files}
|
44
|
+
|
45
|
+
h[:site]= h2[:url][/https?:\/\/([^\/]+)/,1].sub(/^www\./,'')
|
46
|
+
|
47
|
+
tmpfile = Down.download h2[:img]
|
48
|
+
files2 = scale_img tmpfile.to_path
|
49
|
+
|
50
|
+
h[:files] = files2
|
51
|
+
h[:card] = {h2[:card] => { title: h2[:title], desc: h2[:desc], url: h2[:url]}}
|
52
|
+
h[:msg] = msg.sub(urls.last,'')
|
53
|
+
|
54
|
+
return "notice/%s/json: %s" % [@user, h.to_json]
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
return "notice/%s: %s" % [@user, msg]
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def scale_img(raworiginal)
|
67
|
+
|
68
|
+
original = if raworiginal =~ /\.\w+$/ then
|
69
|
+
|
70
|
+
raworiginal
|
71
|
+
|
72
|
+
else
|
73
|
+
|
74
|
+
neworiginal = raworiginal + '.jpg'
|
75
|
+
FileUtils.mv raworiginal, neworiginal
|
76
|
+
neworiginal
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
res = %w(240x240 360x360 *518x389 1280x720 2048x1080)
|
81
|
+
a = @rmagick.resize(original, res)
|
82
|
+
a2 = (a + [nil,nil,nil]).take(res.length)
|
83
|
+
|
84
|
+
oldfile = nil
|
85
|
+
sizes = %w(240x240 360x360 small medium large)
|
86
|
+
|
87
|
+
file_sizes = a2.zip(sizes).map.with_index do |x, i|
|
88
|
+
|
89
|
+
f, label = x
|
90
|
+
|
91
|
+
if f then
|
92
|
+
|
93
|
+
f2 = f.sub(/_(n\d+x\d+)\.\w+$/) {|x| x.sub($1, label)}
|
94
|
+
|
95
|
+
FileUtils.mv f, f2
|
96
|
+
oldfile = f2
|
97
|
+
|
98
|
+
elsif oldfile
|
99
|
+
|
100
|
+
f2 = oldfile.sub(/_(\w+)\.\w+$/) {|x| x.sub($1, label)}
|
101
|
+
|
102
|
+
oldfile = original if i == a.length - 1
|
103
|
+
|
104
|
+
FileUtils.cp oldfile, f2
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
|
109
|
+
f2
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
imgfile = original.sub(/\.\w+$/,'2\0')
|
114
|
+
FileUtils.mv original, imgfile
|
115
|
+
|
116
|
+
file_sizes << imgfile
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
121
|
+
|
122
|
+
end
|
metadata
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: noticesys
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Robertson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwNDAyMTMxMDA2WhcN
|
15
|
+
MjIwNDAyMTMxMDA2WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC0//W5
|
17
|
+
fwRdCmabOOqDZY5a/I78ByWbvSY1MalixR7B+oKswjikrzMonG8JD9WQ2OwMulE4
|
18
|
+
Ncm6qjzcpXOywA+XtNxTaykY2oUEC0lQZvUoNZVk17Rd1M9rjUrPXTqKt2WgUVdk
|
19
|
+
21c0QMc9UHvEut4s0sg1gRYk5FER98Smx7HLlcFDJ4XgUMs4hrHYhqP1Qx144Jvz
|
20
|
+
wFx+ThgfA4fGZFSIar5KAua6Td9OC2C5GXeBPeimyvQi4o5YU284JquNGte9UO1K
|
21
|
+
PR/PmS71+DKfZ9xToSL6OsQdK46fEO1bF7Dm2WkliYt79wDeFN1lYkGCGXwEINOc
|
22
|
+
KgxDIWerzcRm74zzJELo0kaubynnq6d4S9bIvoakfZyvfrgAIRYVJGzikzlFDiQ6
|
23
|
+
B7+ba/nr6/20bi714jRqV70zc6dDZZtuKeu+FhXNYVMrQwfAMjnoiVjZtF2zlKmM
|
24
|
+
aCQ4eIc5eG1vIAHgDB1xX30CW6QexE+zqozqAsGCP6GX7umlG9aCmBWBxl0CAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUN2MtnsN9
|
26
|
+
L713S3/PwaEZEzryg98wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAQIbcr6EAbiHcZWJbQaRqEEdDP0kv7rygFxSeTh2b
|
29
|
+
ORS34n4BLflqFIKO/2QFRMP9PDEg2WOsTgqNt2zvi6nhUX3io1ZQXjF0bcEh4lXI
|
30
|
+
rJei7zIid8fg/TQkKcsQ7zZRVBVff/D9VRtGIofCvQoYXrXF2IWSxnezdq/xzW6V
|
31
|
+
CdFI37XlEuNAO1ijhKnfwLrGPbZpN/4j9IhxQArwSKdehjmOQaNDW3IdteYGZfD4
|
32
|
+
xKpzqGIlQ8d2X8sYIkk4zPdW5yqwgbSltgAOeSNGhlkcEUAxjHtFXJq3LW8A1arv
|
33
|
+
BtD2GsHdYt5DuB8yHZZmIOFj5kytIhWuuMEu1mNEWrKV8SWUbKt2jP86fFxNcLvK
|
34
|
+
ouLtRlxE/c6pHpW62g23N/T9dWSKCjYAkoqB/stIoIs7wgOLlmhPjKtW4miEuIHg
|
35
|
+
iGAgDWBQqM/kdjDslqjBGtyWyFyuYHzXMU1gO/P0aE3rh1enqahZ8BqY+gxXLGrR
|
36
|
+
sU+WFV9qPqoqNOG0tOknOZXN
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
date: 2021-04-02 00:00:00.000000000 Z
|
39
|
+
dependencies:
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: down
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 5.2.0
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '5.2'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 5.2.0
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '5.2'
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: ogextractor
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0.1'
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.1.1
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0.1'
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 0.1.1
|
80
|
+
description:
|
81
|
+
email: digital.robertson@gmail.com
|
82
|
+
executables: []
|
83
|
+
extensions: []
|
84
|
+
extra_rdoc_files: []
|
85
|
+
files:
|
86
|
+
- lib/noticesys.rb
|
87
|
+
homepage: https://github.com/jrobertson/noticesys
|
88
|
+
licenses:
|
89
|
+
- MIT
|
90
|
+
metadata: {}
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
require_paths:
|
94
|
+
- lib
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
requirements: []
|
106
|
+
rubyforge_project:
|
107
|
+
rubygems_version: 2.7.10
|
108
|
+
signing_key:
|
109
|
+
specification_version: 4
|
110
|
+
summary: A small part of an experimental microblogging system.
|
111
|
+
test_files: []
|
metadata.gz.sig
ADDED