mns_timeline 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d421b97678029d8c0e9aa0459b17bad60a6ba617
4
+ data.tar.gz: cf64d5b6293e45c7ae6073d2a727812028aba920
5
+ SHA512:
6
+ metadata.gz: 5d95206d0aa340b713acc710660a85bc3b2046ba29fc0cd10f6a397f5109117418c7997d9bee3da07154a9531c73a226d1b03f5acab13b0b8f1e78691a72dca9
7
+ data.tar.gz: 7a0be83d9445481d5a27ae23b7b23183ace3694448dfbeb4136989f75ede21028af5f41081aacc93aa98e83f102c2e7f9fc34edc1268a22d11388236070548ef
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ y�\Πҟs���7!&��ec?�с���s�*��h&���ȵ�1&��P�A�~�o�z�^)Z� &3t�)�����z�Q:1�es��p��ʬ��?2�W��n����;L�k�{�ʆ�T�+K��R'���j �*yR�i.&}�
2
+ �����iw" 슥��?��(�ms2ҋ!|��F]�)Z�zĶmC\[J�
data.tar.gz.sig ADDED
@@ -0,0 +1 @@
1
+ e����Z���`��?z�o*�$i|/�J�_�q��K���2=b�N{�Ij�_��d
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: mns_timeline.rb
4
+
5
+
6
+ require 'sps-sub'
7
+ require "sqlite3"
8
+ require 'fileutils'
9
+ require 'daily_notices'
10
+
11
+
12
+ class MNSTimeline < SPSSub
13
+
14
+ def initialize(timeline: 'notices', host: 'sps', port: 59000, dir: '.', options: {})
15
+
16
+ # note: a valid url_base must be provided
17
+
18
+ @options = {
19
+ url_base: 'http://yourwebsitehere.co.uk/',
20
+ dx_xslt: '/xsl/dynarex.xsl',
21
+ rss_xslt: '/xsl/feed.xsl',
22
+ target_page: :page,
23
+ target_xslt: '/xsl/page.xsl'
24
+ }.merge(options)
25
+
26
+ super(host: host, port: port)
27
+ @filepath = dir
28
+ @timeline = timeline
29
+
30
+ end
31
+
32
+ def subscribe(topic='timeline/add')
33
+ super(topic)
34
+ end
35
+
36
+ private
37
+
38
+ def ontopic(timeline_topic, msg)
39
+
40
+ puts "%s: %s %s" % [timeline_topic, Time.now.to_s, msg.inspect]
41
+
42
+ topic, id = msg.split('/').values_at 0, -1
43
+ url_base = @options[:url_base]
44
+ fileid = Time.at(id.to_i).strftime("%Y/%b/%d/").downcase + id + '/index.xml'
45
+
46
+ url = "%s%s/%s" % [url_base, topic, fileid]
47
+ kvx = Kvx.new url
48
+ msg = kvx.body[:description]
49
+
50
+ add_notice(topic, msg, id)
51
+
52
+ end
53
+
54
+ def add_notice(topic, msg, id)
55
+
56
+ timeline_dir = File.join(@filepath, @timeline)
57
+ notices = DailyNotices.new timeline_dir,
58
+ @options.merge(identifier: @timeline, title: @timeline.capitalize)
59
+
60
+ return_status = notices.add({description: msg, topic: topic}, id: id)
61
+
62
+ return if return_status == :duplicate
63
+
64
+ dbfilename = File.join(timeline_dir, topic + '.db')
65
+
66
+ if File.exists? dbfilename then
67
+
68
+ db = SQLite3::Database.new dbfilename
69
+
70
+ else
71
+
72
+ db = SQLite3::Database.new dbfilename
73
+
74
+ db.execute <<-SQL
75
+ create table notices (
76
+ ID INT PRIMARY KEY NOT NULL,
77
+ MESSAGE TEXT
78
+ );
79
+ SQL
80
+
81
+ end
82
+
83
+ db.execute("INSERT INTO notices (id, message)
84
+ VALUES (?, ?)", [id, msg])
85
+ sleep 1.5
86
+
87
+ end
88
+
89
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mns_timeline
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
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTE3MDMxMDIzMzM1M1oXDTE4MDMxMDIzMzM1M1owSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBAKBLZKgJAc38dgFWdhE84zSch2txJcVmitzDgyuDlhyG364FzW7yntfMDtQF
19
+ qs0sGGPHEkvrfA/wzDgsVLeUK7hRSTqZ/fHD7cEMaX1LkQpkol8vOw2XlOivd0vn
20
+ qr9sZKdwPwfcdDgv9+/tzXXcX6jkrbpKd3A8R5Ufp7SHwp4TraDBGEzNlw5Fy1tk
21
+ +mwpmob6t5J4rzJaAwrX32jZuF8ohxkVX94HwLGplT2TXvQa9K3If2SWk8ZM9ZQJ
22
+ aTLLIFpvZT43hX++QQrUEip0xX7mqKkcGGxEh83s5wHECY0ICsCQmVRPYZ1fdTt6
23
+ 8eg5+ga5CpB0P1Kca/xiYSv7RfMCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUMx7M/RsU1hk+LyaRigpyNTBulCYwJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAfxfUSKHy
27
+ SHtXC3PAjboLJJBxnIwrAEWS/UcHXhYqkhuSRlJ5GBaEwvyfeL9h6PCdVDhVzbtw
28
+ ztZneINHuOkEjNzuOH8d+F8WSfDDQr6HkOXCxNaaA4NW/sjJoHxngG9RJgPVSeTD
29
+ QlyKsIOpxS/XpEN3ZWO9Ul9wB7n6n/pXznb9ccfCIY1AtU/4zkpPC9Yn+LaqWgg/
30
+ tt1wOxojdLg/n0voyTNCNByk+EgDsC4ZxvVi3jOo2Edlt5s+j1IF7O4uMwToaFnh
31
+ YBz+URMHtVq6O+d7EkE/k4kCrvXbft0ECyMz6y5LS2066ci943uRhmBABvzPeO1K
32
+ tBQ+W56kQhJC1g==
33
+ -----END CERTIFICATE-----
34
+ date: 2017-03-10 00:00:00.000000000 Z
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: sps-sub
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.3'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 0.3.4
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.3'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.3.4
56
+ - !ruby/object:Gem::Dependency
57
+ name: daily_notices
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.5'
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 0.5.6
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '0.5'
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 0.5.6
76
+ - !ruby/object:Gem::Dependency
77
+ name: sqlite3
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.3'
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: 1.3.13
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '1.3'
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.3.13
96
+ description:
97
+ email: james@jamesrobertson.eu
98
+ executables: []
99
+ extensions: []
100
+ extra_rdoc_files: []
101
+ files:
102
+ - lib/mns_timeline.rb
103
+ homepage: https://github.com/jrobertson/mns_timeline
104
+ licenses:
105
+ - MIT
106
+ metadata: {}
107
+ post_install_message:
108
+ rdoc_options: []
109
+ require_paths:
110
+ - lib
111
+ required_ruby_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ required_rubygems_version: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ requirements: []
122
+ rubyforge_project:
123
+ rubygems_version: 2.6.8
124
+ signing_key:
125
+ specification_version: 4
126
+ summary: Subscribes to the SPS topic *timeline/add*, fetches the topic, message +
127
+ id and posts it to the timeline feed
128
+ test_files: []
metadata.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ e0O O(}��b!h�z��R�(�1�cը:>B�LL�F���Q�� �֫eC�NThAIj|� ���m⽜�����3�_�ӈ'q
2
+ 3�qwqRgg;�\��`�M�Rf��g}>v2��������HjY���c�0�*�t�+�6^Ҍ�Ì㣧x�