Skip to content

fails thusly #6

Description

@rdp
class ParseFast

  def initialize filename
    @filename = filename
  end

  # currently returns full download time
  #
  # let's return a hash, like
  # {:download_time => [float or nil], :peer_bytes => x, :origin_bytes => y}
  #
  def go use_this_test_string = nil
    float = /\d+.\d+/
    start_regex = /(#{float})._starting up logger/
    end_regex = /(#{float})._DONE WITH WHOLE FILE/

```
cs_straight = /#{float}.*cs straight.*just received (\d+)B/

bytes = [[cs_straight, :cs_straight]]

starty = nil
endy = nil
stats = {}
stats[:cs_straight] = 0
stats[:cs_p2p] = 0


(use_this_test_string || File.read(@filename)).lines {|line|

  if !starty && line =~ start_regex
    puts line, 'start line' if $VERBOSE
    starty = $1.to_f
  else
    begin # pesky encoding errors
      if !endy && line =~ end_regex
        puts line if $VERBOSE
        endy = $1.to_f
      else
        for regex, name in bytes
          if line =~ regex
            puts 'victory!'
            stats[name] += $1.to_i
            break # somewhat helpful...
          end
        end
      end
    rescue => e # encoding error...
      puts line, line.inspect
    end
  end
}

stats[:download_time] = if endy && starty
puts endy - starty
endy - starty
```

  else
    nil
  end

  stats[:all_cs_bytes] = stats[:cs_straight] + stats[:cs_p2p]

  stats
end

end

if **FILE** == $0
puts ParseFast.new(ARGV[0]).go
end

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions