myuniversaljobsmatchfeed 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 +2 -0
- data/lib/myuniversaljobsmatchfeed.rb +107 -0
- data.tar.gz.sig +2 -0
- metadata +108 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 73e23740cb159e05714356c27588d31c7992bcb2
|
4
|
+
data.tar.gz: f66e906d84ef853b54f38b0527b64599436aa9fe
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 74056d95342998f50c3e09a9ae67862ebfc0322432e4f943890161d837e7f44f9b2e2ee79d7b123bf0c8172b4d4baa3a7138a438d9aad0258356d989836fb28d
|
7
|
+
data.tar.gz: 391d99d241c5653a0e84f91ddaa02e932e3b764c7ec5ff57838b5239c56fcf177583126057e96ca2ef7b3121b9da75b14638c78e0e32c59af9ce744b1ee2a971
|
checksums.yaml.gz.sig
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# file: myuniversaljobsmatchfeed.rb
|
4
|
+
|
5
|
+
require 'daily_notices'
|
6
|
+
require 'myuniversaljobsmatch'
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
class MyUniversalJobsMatchFeed < DailyNotices
|
11
|
+
|
12
|
+
def initialize(filepath='', title: nil, where: nil, url_base: '', \
|
13
|
+
dx_xslt: '', rss_xslt: '', refreshrate: nil, target_xslt: '')
|
14
|
+
|
15
|
+
@schema = 'ujm[title,tags]/item(job_id, title, description, ' + \
|
16
|
+
'posting_date, company, location, industries, ' + \
|
17
|
+
'job_type, salary, hours_of_work, job_reference_code,' + \
|
18
|
+
'career_level, education_level, application_methods,' + \
|
19
|
+
'years_of_experience)'
|
20
|
+
@default_key = 'job_id'
|
21
|
+
|
22
|
+
super(filepath, url_base: url_base, dx_xslt: dx_xslt, \
|
23
|
+
rss_xslt: rss_xslt, target_page: :record, target_xslt: target_xslt)
|
24
|
+
|
25
|
+
@title, @where = title, where
|
26
|
+
|
27
|
+
self.title = "My Universal Jobmatch feed for %s in %s" % [title, where]
|
28
|
+
self.description = 'Universal Jobmatch data fetched ' + \
|
29
|
+
'from jobsearch.direct.gov.uk'
|
30
|
+
|
31
|
+
# set the time last updated in the hidden scratch file if refreshrate set
|
32
|
+
|
33
|
+
@datafile = File.join(@filepath, '.myuniversaljobsmatchfeed')
|
34
|
+
@refreshrate = refreshrate
|
35
|
+
|
36
|
+
|
37
|
+
if @refesh_rate then
|
38
|
+
|
39
|
+
@h = File.exists?(@datafile) ? Kvx.new(File.read(@datafile)).to_h : \
|
40
|
+
{nextrefresh: Time.now.to_s}
|
41
|
+
end
|
42
|
+
|
43
|
+
@ujm = MyUniversalJobsMatch.new filepath: @filepath
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
def start()
|
48
|
+
loop { self.update; sleep((@refreshrate || 1) * 60) }
|
49
|
+
end
|
50
|
+
|
51
|
+
def update()
|
52
|
+
|
53
|
+
return if @refreshrate and (Time.parse(@h[:nextrefresh]) > Time.now)
|
54
|
+
|
55
|
+
results = @ujm.search(title: @title, where: @where)
|
56
|
+
results_filepath = File.join(@filepath, 'results.xml')
|
57
|
+
|
58
|
+
capture = ->(result) do
|
59
|
+
vacancy = @ujm.query result[:job_id]
|
60
|
+
|
61
|
+
self.add(vacancy, title: vacancy[:title], \
|
62
|
+
description: vacancy[:description], id: vacancy[:job_id]) do |kvx|
|
63
|
+
kvx.summary[:title] = vacancy[:title]
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
if File.exists? results_filepath then
|
68
|
+
|
69
|
+
prev_results = Dynarex.new(results_filepath)
|
70
|
+
new_results = results.to_a - prev_results.to_a
|
71
|
+
|
72
|
+
if new_results.any? then
|
73
|
+
|
74
|
+
new_results.each(&capture)
|
75
|
+
|
76
|
+
results.save results_filepath
|
77
|
+
on_change()
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
else
|
82
|
+
|
83
|
+
results.all.each(&capture)
|
84
|
+
|
85
|
+
results.save results_filepath
|
86
|
+
on_change()
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
if @refreshrate then
|
91
|
+
|
92
|
+
@h = {nextrefresh: (Time.now + @refreshrate * 60).to_s}
|
93
|
+
File.write @datafile, Kvx.new(@h)
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
# override this method for your own custom notifier, callback, or webhook etc.
|
100
|
+
#
|
101
|
+
def on_change()
|
102
|
+
|
103
|
+
yield() if block_given?
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
data.tar.gz.sig
ADDED
metadata
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: myuniversaljobsmatchfeed
|
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
|
+
8ixkARkWAmV1MB4XDTE1MTEwMTEyNDg1MFoXDTE2MTAzMTEyNDg1MFowSDESMBAG
|
16
|
+
A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
|
17
|
+
EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
18
|
+
ggEBAJkpl1Ihy1Emoz/x39uzpSB0D6y4sgn0M+ZYM2GRYa3ZOKkpBfW9CQVY5k53
|
19
|
+
XL2ZyOfeU2Z8lUTM4IX/bqlOGJ+UJYS+A8JXJjDXKhI0E9m9nRvRB10kIIXlb5Wa
|
20
|
+
lH/5Dbf8lZI6ASf5vfcCd4vooPp2rbeyrtNxamqSaos2GJXOKyMK+N3Im+vdltDg
|
21
|
+
+gLr9KPro8onGlwc834TWpeTfNLlMU6/DeZtmYgkpoZGHEEHUPMN4QP7F4fDS7+z
|
22
|
+
rblh5HRaL3lrui7xtdnVe6yWNKF4pO3eNx/qk9q1pYBNxKRCqDW6TpPcLXXThp6N
|
23
|
+
KutN55bgY7rWLIxoryHafgcf4R8CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
|
24
|
+
DwQEAwIEsDAdBgNVHQ4EFgQUlg6D83H/kFEM6pI3lnzaZxbXnrYwJgYDVR0RBB8w
|
25
|
+
HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
|
26
|
+
c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAP27JiixZ
|
27
|
+
ZEoRtQwaHaWb1kWqEhWIKUX8IZCLxGhUto51qatxDj+E0vmglHX6KrrChbc/6OW/
|
28
|
+
OFDQflfjVr1vKWh9lhpBF8XQxY/S+P10jIam1U9BAwQwtqhxUTMgiRZNQjGAOho3
|
29
|
+
FDbr/Cp1NxLzz3WQ5ISLHFe8Gz7Ilq053X7Uy8B+pNQBl/8+pnu4aCaEsxtPpm1X
|
30
|
+
pLLMEGuwIzu1dBUrFnjtuM8QYslXQv3dQEx8xC8AafsP016e06arUz0ODN/iwMVM
|
31
|
+
hutGID88gCwJmkr087O3V0hW65rNfi60o1Gf2isaXnjWu9oUKQZiaZYCf35sr96m
|
32
|
+
2ts5zHJi+atHJg==
|
33
|
+
-----END CERTIFICATE-----
|
34
|
+
date: 2015-11-01 00:00:00.000000000 Z
|
35
|
+
dependencies:
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: myuniversaljobsmatch
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0.1'
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.1.5
|
46
|
+
type: :runtime
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0.1'
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.1.5
|
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.3'
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 0.3.0
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0.3'
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.3.0
|
76
|
+
description:
|
77
|
+
email: james@r0bertson.co.uk
|
78
|
+
executables: []
|
79
|
+
extensions: []
|
80
|
+
extra_rdoc_files: []
|
81
|
+
files:
|
82
|
+
- lib/myuniversaljobsmatchfeed.rb
|
83
|
+
homepage: https://github.com/jrobertson/myuniversaljobsmatchfeed
|
84
|
+
licenses:
|
85
|
+
- MIT
|
86
|
+
metadata: {}
|
87
|
+
post_install_message:
|
88
|
+
rdoc_options: []
|
89
|
+
require_paths:
|
90
|
+
- lib
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
requirements: []
|
102
|
+
rubyforge_project:
|
103
|
+
rubygems_version: 2.4.8
|
104
|
+
signing_key:
|
105
|
+
specification_version: 4
|
106
|
+
summary: Generates an RSS feed for the search results from the myuniversaljobsmatch
|
107
|
+
gem
|
108
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|