colloquy_log_to_text 1.1.2 → 1.1.6

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.
data/README.md CHANGED
@@ -14,6 +14,6 @@ This is a simple ruby script to convert Colloquy's awful XML logs
14
14
  ## Development
15
15
 
16
16
  1. Fork
17
- 1. Edit `lib/colloquy_log_to_text.rb`
17
+ 1. Edit
18
18
  2. `rake`
19
19
  3. Submit pull request
@@ -1,65 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- require 'nokogiri'
3
- require 'date'
4
2
 
5
- argc = ARGV.length
6
- docs = Array.new
7
- filenames = Array.new
3
+ $:.push File.expand_path("../lib/", __FILE__)
8
4
 
9
- if argc < 1
10
- puts "Error: No Colloquy log files specified."
11
- exit 1
12
- end
5
+ require 'colloquy_log_to_text'
13
6
 
14
- for arg in ARGV
15
- case arg
16
- when "-h"
17
- puts "Usage: colloquy_log_to_text [-h] <LOGFILE> [[LOGFILE2]...]"
18
- puts "The log file specified (.colloquyTranscript) will then be converted into plain text."
19
- puts "The -h option is used to display this help message."
20
- exit 0
21
- else
22
- if !arg.match(/\.colloquyTranscript$/)
23
- puts "Error: File is not a Colloquy log."
24
- next
25
- end
26
- filenames.push arg
27
- end
28
- end
7
+ args = ARGV.dup
29
8
 
30
- for file in filenames
31
- puts "Converting #{file}..."
32
- f = File.open(file)
33
- doc = Nokogiri::XML(f)
34
- f.close
35
- f = File.open(file.gsub(".colloquyTranscript", ".txt"), "w")
36
- envelopes = doc.css("envelope")
37
- envelopes.each { |envelope|
38
- messages = envelope.css("message")
39
- messages.each { |message|
40
- @printed_message = message.content
41
- @timestamp_string = message.attr("received")
42
- @timestamp = DateTime.strptime(@timestamp_string, "%F %H:%M:%S")
43
- @is_action = message.attr("action")
44
- }
45
- senders = envelope.css("sender")
46
- senders.each { |sender|
47
- @nick = sender.content
48
- case sender.attr("class")
49
- when "voice"
50
- @class = "+"
51
- when "operator"
52
- @class = "@"
53
- when "founder"
54
- @class = "~"
55
- when "administrator"
56
- @class = "&"
57
- end
58
- }
59
- if @is_action == "yes"
60
- f.puts "[#{@timestamp.day}-#{@timestamp.month}-#{@timestamp.year} #{@timestamp.hour}:#{@timestamp.minute}] * #{@nick} #{@printed_message}"
61
- else
62
- f.puts "[#{@timestamp.day}-#{@timestamp.month}-#{@timestamp.year} #{@timestamp.hour}:#{@timestamp.minute}] <#{@class}#{@nick}> #{@printed_message}"
63
- end
64
- }
65
- end
9
+ ColloquyLogToText.parse_args(args)
10
+
11
+ exit 0
@@ -0,0 +1,41 @@
1
+ class ColloquyLogToText
2
+ def self.convert(file)
3
+ if !file.match(/\.colloquyTranscript$/)
4
+ puts "Error: File is not a Colloquy log."
5
+ end
6
+ puts "Converting #{file}..."
7
+ f = File.open(file)
8
+ doc = Nokogiri::XML(f)
9
+ f.close
10
+ f = File.open(file.gsub(".colloquyTranscript", ".txt"), "w")
11
+ envelopes = doc.css("envelope")
12
+ envelopes.each { |envelope|
13
+ messages = envelope.css("message")
14
+ messages.each { |message|
15
+ @printed_message = message.content
16
+ @timestamp_string = message.attr("received")
17
+ @timestamp = DateTime.strptime(@timestamp_string, "%F %H:%M:%S")
18
+ @is_action = message.attr("action")
19
+ }
20
+ senders = envelope.css("sender")
21
+ senders.each { |sender|
22
+ @nick = sender.content
23
+ case sender.attr("class")
24
+ when "voice"
25
+ @class = "+"
26
+ when "operator"
27
+ @class = "@"
28
+ when "founder"
29
+ @class = "~"
30
+ when "administrator"
31
+ @class = "&"
32
+ end
33
+ }
34
+ if @is_action == "yes"
35
+ f.puts "[#{@timestamp.day}-#{@timestamp.month}-#{@timestamp.year} #{@timestamp.hour}:#{@timestamp.minute}] * #{@nick} #{@printed_message}"
36
+ else
37
+ f.puts "[#{@timestamp.day}-#{@timestamp.month}-#{@timestamp.year} #{@timestamp.hour}:#{@timestamp.minute}] <#{@class}#{@nick}> #{@printed_message}"
38
+ end
39
+ }
40
+ end
41
+ end
@@ -0,0 +1,25 @@
1
+ require 'colloquy_log_to_text/version'
2
+
3
+ class ColloquyLogToText
4
+ def self.parse_args(args)
5
+ argc = args.count
6
+ if argc < 1
7
+ puts "Error: No Colloquy log files specified."
8
+ exit 1
9
+ end
10
+
11
+ for arg in args
12
+ case arg
13
+ when "-h"
14
+ puts "Usage: colloquy_log_to_text [-h] <LOGFILE> [[LOGFILE2]...]"
15
+ puts "The log file specified (.colloquyTranscript) will then be converted into plain text."
16
+ puts "The -h option is used to display this help message."
17
+ exit 0
18
+ when "-v"
19
+ puts ColloquyLogToText.version
20
+ else
21
+ ColloquyLogToText.convert(arg)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ class ColloquyLogToText
2
+ def self.version
3
+ "1.1.6"
4
+ end
5
+ end
@@ -1,64 +1,6 @@
1
+ require 'colloquy_log_to_text/colloquy_log_to_text'
2
+ require 'colloquy_log_to_text/parse_args'
3
+ require 'bundler/setup'
1
4
  require 'nokogiri'
2
5
  require 'date'
3
6
 
4
- argc = ARGV.length
5
- docs = Array.new
6
- filenames = Array.new
7
-
8
- if argc < 1
9
- puts "Error: No Colloquy log files specified."
10
- exit 1
11
- end
12
-
13
- for arg in ARGV
14
- case arg
15
- when "-h"
16
- puts "Usage: colloquy_log_to_text [-h] <LOGFILE> [[LOGFILE2]...]"
17
- puts "The log file specified (.colloquyTranscript) will then be converted into plain text."
18
- puts "The -h option is used to display this help message."
19
- exit 0
20
- else
21
- if !arg.match(/\.colloquyTranscript$/)
22
- puts "Error: File is not a Colloquy log."
23
- next
24
- end
25
- filenames.push arg
26
- end
27
- end
28
-
29
- for file in filenames
30
- puts "Converting #{file}..."
31
- f = File.open(file)
32
- doc = Nokogiri::XML(f)
33
- f.close
34
- f = File.open(file.gsub(".colloquyTranscript", ".txt"), "w")
35
- envelopes = doc.css("envelope")
36
- envelopes.each { |envelope|
37
- messages = envelope.css("message")
38
- messages.each { |message|
39
- @printed_message = message.content
40
- @timestamp_string = message.attr("received")
41
- @timestamp = DateTime.strptime(@timestamp_string, "%F %H:%M:%S")
42
- @is_action = message.attr("action")
43
- }
44
- senders = envelope.css("sender")
45
- senders.each { |sender|
46
- @nick = sender.content
47
- case sender.attr("class")
48
- when "voice"
49
- @class = "+"
50
- when "operator"
51
- @class = "@"
52
- when "founder"
53
- @class = "~"
54
- when "administrator"
55
- @class = "&"
56
- end
57
- }
58
- if @is_action == "yes"
59
- f.puts "[#{@timestamp.day}-#{@timestamp.month}-#{@timestamp.year} #{@timestamp.hour}:#{@timestamp.minute}] * #{@nick} #{@printed_message}"
60
- else
61
- f.puts "[#{@timestamp.day}-#{@timestamp.month}-#{@timestamp.year} #{@timestamp.hour}:#{@timestamp.minute}] <#{@class}#{@nick}> #{@printed_message}"
62
- end
63
- }
64
- end
metadata CHANGED
@@ -1,8 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colloquy_log_to_text
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.1.2
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 1
8
+ - 6
9
+ version: 1.1.6
6
10
  platform: ruby
7
11
  authors:
8
12
  - Mark Szymanski
@@ -21,6 +25,8 @@ dependencies:
21
25
  requirements:
22
26
  - - ">="
23
27
  - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
24
30
  version: "0"
25
31
  type: :runtime
26
32
  version_requirements: *id001
@@ -34,6 +40,9 @@ extra_rdoc_files: []
34
40
 
35
41
  files:
36
42
  - README.md
43
+ - lib/colloquy_log_to_text/colloquy_log_to_text.rb
44
+ - lib/colloquy_log_to_text/version.rb
45
+ - lib/colloquy_log_to_text/parse_args.rb
37
46
  - lib/colloquy_log_to_text.rb
38
47
  - bin/colloquy_log_to_text
39
48
  has_rdoc: true
@@ -50,17 +59,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
50
59
  requirements:
51
60
  - - ">="
52
61
  - !ruby/object:Gem::Version
62
+ segments:
63
+ - 0
53
64
  version: "0"
54
65
  required_rubygems_version: !ruby/object:Gem::Requirement
55
66
  none: false
56
67
  requirements:
57
68
  - - ">="
58
69
  - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
59
72
  version: "0"
60
73
  requirements: []
61
74
 
62
75
  rubyforge_project:
63
- rubygems_version: 1.6.2
76
+ rubygems_version: 1.3.7
64
77
  signing_key:
65
78
  specification_version: 3
66
79
  summary: A simple gem to convert Colloquy's awful XML logs into plain text.