Sha256: 5cffa53341ad9de7cad084164f90a3e790877bbdfeda78575634c4a0c359cad8

Contents?: true

Size: 1.17 KB

Versions: 15

Compression:

Stored size: 1.17 KB

Contents

#!/usr/bin/env ruby

require 'rubygems'
require 'open-uri'
require 'nokogiri'
require 'yaml'
require 'zip'

# Download XML file from http://www.uke.gov.pl/tablice/NumerPlmn-list.do?execution=e5s1

data = {}

Zip::InputStream.open(StringIO.new(open('http://www.uke.gov.pl/tablice/xml/T2-PLMN_T9-MVNO.xml.zip').read)) do |io|
  io.get_next_entry
  doc = Nokogiri::XML.parse(io.read)

  doc.xpath('//numery/plmn').each do |node|
    number = node.xpath('numer').inner_text
    operator = node.xpath('operator').inner_text

    m = number.match /([0-9]+)\(([0-9,-]+)\)/
    numbers = []

    data[operator] = [] unless data.has_key?(operator)

    if m
      number = m[1]
      m[2].split(',').each do |i|
        range = i.split('-')

        if range.length > 1
          Range.new(range[0].to_i,range[1].to_i == 0 ? 10 : range[1].to_i).each do |i|
            numbers.push "#{number}#{i == 10 ? 0 : i}"
          end
        else
          numbers.push "#{number}#{i}"
        end
      end

      data[operator].push numbers
      data[operator].flatten!(1)
    else
      data[operator].push number
    end
  end
end

File.open("yaml/operators.yml", "w") do |file|
  file.write data.to_yaml
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
polish_cell_number_checker-0.0.46 bin/update
polish_cell_number_checker-0.0.45 bin/update
polish_cell_number_checker-0.0.44 bin/update
polish_cell_number_checker-0.0.43 bin/update
polish_cell_number_checker-0.0.42 bin/update
polish_cell_number_checker-0.0.41 bin/update
polish_cell_number_checker-0.0.40 bin/update
polish_cell_number_checker-0.0.39 bin/update
polish_cell_number_checker-0.0.38 bin/update
polish_cell_number_checker-0.0.37 bin/update
polish_cell_number_checker-0.0.36 bin/update
polish_cell_number_checker-0.0.35 bin/update
polish_cell_number_checker-0.0.34 bin/update
polish_cell_number_checker-0.0.33 bin/update
polish_cell_number_checker-0.0.32 bin/update