brreg 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/Gemfile +4 -0
- data/LICENSE.md +8 -0
- data/README.md +55 -0
- data/Rakefile +1 -0
- data/bin/brreg +57 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/brreg.gemspec +22 -0
- data/lib/brreg.rb +82 -0
- data/lib/brreg/version.rb +3 -0
- metadata +83 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 342cd80cd65030dd047e2b1c0f9d5127961fb335
|
4
|
+
data.tar.gz: 399f5a15fef2c057bfd10ba0f383e867847fa0d6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6a98cb6c42e8dd7bcde8d6ba8d0c8ce48a0713440659f7d02a20c4cd3e748481487a41e95177696fbd2e7f58ded3dbf4b0e51ea95ef4b05ab8e30461e62a4730
|
7
|
+
data.tar.gz: 8a1a857d48460b981991ffa28e606b5dade213fb5d161c4b0e2d4de116816730ae48dd6265cba12660f0b85977113d38d82a2fc84b8dbc80520f5a8d18f49719
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.md
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
Copyright (c) 2012 Espen Antonsen
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
5
|
+
|
6
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
7
|
+
|
8
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
# Søk i Enhetsregisteret i Brønnøysundregisteret
|
2
|
+
|
3
|
+
Søk i Enhetsregisteret basert på firmanavn, organisasjonsnummer eller ved oppslag på norske domener hos Norid.
|
4
|
+
|
5
|
+
## Installasjon
|
6
|
+
|
7
|
+
```shell
|
8
|
+
$ gem install brreg
|
9
|
+
$ brreg -h
|
10
|
+
```
|
11
|
+
|
12
|
+
## I bruk
|
13
|
+
|
14
|
+
```shell
|
15
|
+
brreg [options]
|
16
|
+
-n, --orgnr ORGNR Organisasjonsnummer
|
17
|
+
-q, --query QUERY Firmanavn
|
18
|
+
-d, --domain DOMAIN Domenenavn (kun .no)
|
19
|
+
-v, --version Versjon
|
20
|
+
```
|
21
|
+
|
22
|
+
## Eksempel
|
23
|
+
|
24
|
+
```shell
|
25
|
+
~ brreg inspired
|
26
|
+
Søker etter 'inspired'
|
27
|
+
...............
|
28
|
+
994502085 GET INSPIRED AS
|
29
|
+
996617742 INSPIRED BY ADELINA GRENMAR
|
30
|
+
992842318 INDIGO INSPIRED INITIATIVE STENSRUD
|
31
|
+
999205224 UNGDOMSBEDRIFTEN INSPIRED
|
32
|
+
999309755 INSPIRED UNGDOMSBEDRIFT
|
33
|
+
994317318 INSPIRED THINKING Wenche A Buchman
|
34
|
+
990610924 INSPIRED AS
|
35
|
+
|
36
|
+
~ brreg 990610924
|
37
|
+
Viser oppføring for orgnr 990610924
|
38
|
+
...............
|
39
|
+
INSPIRED AS
|
40
|
+
Nustadsløyfa 41
|
41
|
+
3970 LANGESUND
|
42
|
+
c/o Espen Antonsen Sverdrups gate 26B
|
43
|
+
0559 OSLO
|
44
|
+
|
45
|
+
~ brreg makeplans.no
|
46
|
+
Viser oppføring for orgnr 990610924
|
47
|
+
...............
|
48
|
+
INSPIRED AS
|
49
|
+
Nustadsløyfa 41
|
50
|
+
3970 LANGESUND
|
51
|
+
c/o Espen Antonsen Sverdrups gate 26B
|
52
|
+
0559 OSLO
|
53
|
+
|
54
|
+
Basert på Whois fra domenet makeplans.no
|
55
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/brreg
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'optparse'
|
5
|
+
require 'brreg'
|
6
|
+
|
7
|
+
cli_params = {}
|
8
|
+
|
9
|
+
opts = OptionParser.new do |opt|
|
10
|
+
opt.banner = "Usage: brreg [options] OR brreg orgnr/query/domain"
|
11
|
+
|
12
|
+
opt.on('-n', '--orgnr ORGNR', 'Organisasjonsnummer') do |orgnr|
|
13
|
+
cli_params[:orgnr] = orgnr.to_i
|
14
|
+
end
|
15
|
+
|
16
|
+
opt.on('-q', '--query QUERY', 'Firmanavn') do |query|
|
17
|
+
cli_params[:query] = query
|
18
|
+
end
|
19
|
+
|
20
|
+
opt.on('-d', '--domain DOMAIN', 'Domenenavn (kun .no)') do |domain|
|
21
|
+
cli_params[:domain] = domain
|
22
|
+
end
|
23
|
+
|
24
|
+
opt.on('-v', '--version', 'Versjon') { puts "Brreg version #{Brreg.version}"; exit }
|
25
|
+
end
|
26
|
+
begin
|
27
|
+
opts.parse!
|
28
|
+
rescue OptionParser::InvalidOption, OptionParser::MissingArgument
|
29
|
+
puts opts
|
30
|
+
exit
|
31
|
+
end
|
32
|
+
|
33
|
+
def numeric?(object)
|
34
|
+
true if Float(object) rescue false
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
if cli_params.length > 0
|
39
|
+
if cli_params[:orgnr]
|
40
|
+
Brreg.find_by_orgnr(cli_params[:orgnr])
|
41
|
+
elsif cli_params[:query]
|
42
|
+
Brreg.find( cli_params[:query])
|
43
|
+
elsif cli_params[:domain]
|
44
|
+
Brreg.find_by_domain( cli_params[:domain])
|
45
|
+
end
|
46
|
+
elsif ARGV.length > 0
|
47
|
+
input = ARGV.first
|
48
|
+
if numeric?(input)
|
49
|
+
Brreg.find_by_orgnr( input.to_i )
|
50
|
+
elsif input.include?('.no')
|
51
|
+
Brreg.find_by_domain( input )
|
52
|
+
else
|
53
|
+
Brreg.find( input )
|
54
|
+
end
|
55
|
+
else
|
56
|
+
puts opts
|
57
|
+
end
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "brreg"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
data/brreg.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'brreg/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "brreg"
|
8
|
+
spec.version = Brreg::VERSION
|
9
|
+
spec.authors = ["Espen Antonsen"]
|
10
|
+
spec.email = ["espen@inspired.no"]
|
11
|
+
|
12
|
+
spec.summary = "Search Enhetsregisteret i Brønnøysundsregisteret"
|
13
|
+
spec.description = "Search Norwegian companies"
|
14
|
+
spec.homepage = "http://github.com/espen/brreg"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.executables = "brreg"
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
21
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
22
|
+
end
|
data/lib/brreg.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'brreg/version'
|
2
|
+
require 'net/http'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Brreg
|
6
|
+
BrregURI = 'http://hotell.difi.no/api/json/brreg/enhetsregisteret'
|
7
|
+
def self.find_by_orgnr(orgnr)
|
8
|
+
res = get_json( { :orgnr => orgnr } )
|
9
|
+
if res.is_a?(Net::HTTPSuccess)
|
10
|
+
jsonres = JSON.parse(res.body)
|
11
|
+
if jsonres['posts'].to_i > 0
|
12
|
+
company = jsonres['entries'].first
|
13
|
+
puts "\n"
|
14
|
+
puts "\e[32mViser oppføring for orgnr #{orgnr}\e[0m"
|
15
|
+
puts "\n"
|
16
|
+
puts company['navn']
|
17
|
+
puts company['forretningsadr']
|
18
|
+
puts company['forradrpostnr'] + ' ' + company['forradrpoststed']
|
19
|
+
if !company['postadresse'].empty?
|
20
|
+
puts 'Postadresse:'
|
21
|
+
puts company['postadresse']
|
22
|
+
puts company['ppostnr'] + ' ' + company['ppoststed']
|
23
|
+
end
|
24
|
+
else
|
25
|
+
puts "Fant ingen oppføring for #{orgnr}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.find_by_domain(domain)
|
31
|
+
res = `whois #{domain}`
|
32
|
+
res.force_encoding('BINARY').encode!('UTF-8', :invalid => :replace, :undef => :replace)
|
33
|
+
if res.gsub('Id Number').first
|
34
|
+
orgnr = /\Id Number..................:\s(\d{9})/
|
35
|
+
if res.match(orgnr)
|
36
|
+
Brreg.find_by_orgnr( res.scan(orgnr).first.first.to_i )
|
37
|
+
puts "\nBasert på Whois fra domenet #{domain}"
|
38
|
+
else
|
39
|
+
puts "Domenet har ikke et vanlig orgnr."
|
40
|
+
end
|
41
|
+
elsif res.gsub('% No match').first
|
42
|
+
puts "Domenet #{domain} er ikke registert"
|
43
|
+
else
|
44
|
+
puts "Ukjent svar fra Whois. Det er kun mulig å søke på .no domener."
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.find(query)
|
49
|
+
puts "\n"
|
50
|
+
puts "\e[32mTreff i Enhetsregisteret basert på søket '#{query}'\e[0m"
|
51
|
+
puts "\n"
|
52
|
+
res = self.get_json( { :query => query } )
|
53
|
+
if res.is_a?(Net::HTTPSuccess)
|
54
|
+
jsonres = JSON.parse(res.body)
|
55
|
+
matches = jsonres['posts'].to_i
|
56
|
+
if matches > 0
|
57
|
+
if matches == 1
|
58
|
+
puts "Fant 1 oppføring"
|
59
|
+
Brreg.find_by_orgnr( jsonres['entries'].first['orgnr'] )
|
60
|
+
else
|
61
|
+
for entry in jsonres['entries']
|
62
|
+
puts entry['orgnr'] + ' ' + entry['navn']
|
63
|
+
end
|
64
|
+
end
|
65
|
+
else
|
66
|
+
puts "Fant ingen oppføringer med navn #{query}"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.version
|
72
|
+
VERSION
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def self.get_json(params)
|
78
|
+
uri = URI(BrregURI)
|
79
|
+
uri.query = URI.encode_www_form(params)
|
80
|
+
Net::HTTP.get_response(uri)
|
81
|
+
end
|
82
|
+
end
|
metadata
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: brreg
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Espen Antonsen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-06-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
description: Search Norwegian companies
|
42
|
+
email:
|
43
|
+
- espen@inspired.no
|
44
|
+
executables:
|
45
|
+
- brreg
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- ".gitignore"
|
50
|
+
- Gemfile
|
51
|
+
- LICENSE.md
|
52
|
+
- README.md
|
53
|
+
- Rakefile
|
54
|
+
- bin/brreg
|
55
|
+
- bin/console
|
56
|
+
- bin/setup
|
57
|
+
- brreg.gemspec
|
58
|
+
- lib/brreg.rb
|
59
|
+
- lib/brreg/version.rb
|
60
|
+
homepage: http://github.com/espen/brreg
|
61
|
+
licenses: []
|
62
|
+
metadata: {}
|
63
|
+
post_install_message:
|
64
|
+
rdoc_options: []
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
requirements: []
|
78
|
+
rubyforge_project:
|
79
|
+
rubygems_version: 2.4.8
|
80
|
+
signing_key:
|
81
|
+
specification_version: 4
|
82
|
+
summary: Search Enhetsregisteret i Brønnøysundsregisteret
|
83
|
+
test_files: []
|