chat_by_rznvls 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/chatr8s +2 -0
  3. data/lib/chatC.rb +93 -0
  4. data/lib/chat_by_rznvls.rb +37 -16
  5. metadata +34 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8e923f144513fa2cb911d43934705aafeb32a9ea
4
- data.tar.gz: 8b04e23d7107efcaccfe66e769604d61d09d3833
3
+ metadata.gz: a4ab4b8f4374239f8c411341e870bd6c0c7bde19
4
+ data.tar.gz: e36dc1279de83f7a0c33f1a1bc32f9e4a77e1740
5
5
  SHA512:
6
- metadata.gz: c58880cd8e687468d8c515fecbee52246faa5116b5a9f9b25f6098e1f247368d42ade4971b7947bec74001baa754844def1b6ca601f4fa3665e3107f149d79be
7
- data.tar.gz: 2041be499973958f5350ef6bc0ed7605d5f9df5d5fa34fdbb9e4a3a14b6fbef3582d91fd7360615d5e78c3de2e2dd15ab85b298c0d36f9a69cd39c6dcac1d394
6
+ metadata.gz: 40d63c61fc3a5c41b2d139a1709da71441e811586bc54034ef8c5dfc68fe6366896304ad6d32700d9fcf015d9833a684c5fc737407227741cac106987497bd9f
7
+ data.tar.gz: b059eef2a16c6de89f4248967c39b2bd57ebb2d9d23fd33699390ce7a7cfb9eac91d07163517ed77ae4449dfc6caf22462ab68cb34f9da41bc4fd563c1f708e7
data/bin/chatr8s ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ruby
2
+ require 'chat_by_rznvls'
data/lib/chatC.rb ADDED
@@ -0,0 +1,93 @@
1
+ require 'mysql2'
2
+ require 'digest'
3
+
4
+ class Chat
5
+
6
+ def self.get_connection (host,username,password,port,database)
7
+ return Mysql2::Client.new( :host => host,
8
+ :username => username ,
9
+ :password => password ,
10
+ :port => port ,
11
+ :database => database )
12
+ end
13
+
14
+
15
+ def self.checkLogin ( connection )
16
+
17
+ print "Login: "
18
+ user = self.input
19
+ print "Password: "
20
+ passwd = self.input
21
+
22
+ md5passwd = Digest::MD5.new
23
+ md5passwd << passwd
24
+
25
+
26
+ connection.query("SELECT * FROM users WHERE username = '#{user}'").each do |data_for_passwd|
27
+ if (md5passwd == data_for_passwd["password"])
28
+ return user
29
+ else
30
+ puts "Login failed"
31
+ return ""
32
+ end
33
+ end
34
+
35
+ end
36
+
37
+
38
+
39
+ def self.registration(connection)
40
+ print "Login: "
41
+ user = Chat.input
42
+ print "Password: "
43
+ passwd = Chat.input
44
+ md5passwd = Digest::MD5.new
45
+ md5passwd << passwd
46
+
47
+
48
+ connection.query("SELECT * FROM users WHERE username = '#{user}'").each do |data_for_reg|
49
+ if (user == data_for_reg["username"])
50
+ puts "Try another login"
51
+ puts user
52
+ return ""
53
+ end
54
+ end
55
+ puts "Login succes"
56
+ puts user
57
+ connection.query("INSERT INTO users (username, password) VALUES ('#{user}', '#{md5passwd}')")
58
+ return user
59
+
60
+
61
+ end
62
+
63
+
64
+
65
+ def self.push_msg(connection, user,msg)
66
+ connection.query("INSERT INTO chat (user, msg) VALUES ('#{user}', '#{msg}')")
67
+ end
68
+
69
+ def self.get_lastmsgs ( connection, table, n)
70
+ connection.query("SELECT * FROM #{table} WHERE id > ( SELECT MAX(id) - #{n} FROM chat)")
71
+ end
72
+
73
+
74
+
75
+ def self.help
76
+ puts "Help information for work with chat_by_rznvls /n -r = refresh chat information, shows last 5 messages"
77
+ end
78
+
79
+ def self.refresh (lastmsgs)
80
+ lastmsgs.each do |row|
81
+ puts row["user"] + ": " + row["msg"]
82
+ end
83
+ end
84
+
85
+
86
+ def self.input
87
+ gets.to_s.strip
88
+ end
89
+
90
+ end
91
+
92
+
93
+
@@ -1,41 +1,62 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
3
  require 'mysql2'
4
+ require 'digest'
5
+ load 'chatC.rb'
4
6
 
5
7
 
6
8
  begin
7
9
 
8
- print "Login: "
9
- user = gets.to_s.strip
10
10
 
11
- con = Mysql2::Client.new( :host => 'sql2.freemysqlhosting.net',
12
- :username => 'sql2204087',
13
- :password => 'tM3%yF9*',
14
- :port => '3306',
15
- :database => 'sql2204087')
11
+ con = Chat.get_connection('sql2.freemysqlhosting.net', 'sql2204087','tM3%yF9*', '3306','sql2204087')
12
+ user = ""
13
+ logOrReg=""
16
14
  run = true
15
+ logined = false
16
+ puts "login (l) or registration (r)"
17
+
18
+ while(logOrReg!="l" && logOrReg != "r" ) do
19
+ logOrReg = Chat.input
20
+ end
21
+
22
+ case logOrReg
23
+ when "l"
24
+
25
+ while !logined do
26
+ user = Chat.checkLogin(con)
27
+ logined = user == "" ? false: true
28
+ end
29
+
30
+ when "r"
31
+ while !logined do
32
+ user = Chat.registration(con)
33
+ logined = user == "" ? false : true
34
+ end
35
+
36
+ end
37
+
38
+ if ( username != "" ) do
17
39
  puts "Type -h for help with this shit and -r to refresh chat"
18
- puts "Have fun"
40
+ puts "Have fun, #{user}"
19
41
 
20
42
 
21
43
  while run do
22
44
 
23
- msg = gets.to_s.strip
24
- msgs = con.query("SELECT * FROM chat WHERE id > ( SELECT MAX(id) - 5 FROM chat)")
45
+ msg = Chat.input
46
+ msgs = Chat.get_lastmsgs( con , 'chat','5')
25
47
  case msg
26
48
  when "-r"
27
- msgs.each do |row|
28
- puts row["user"] + ": " + row["msg"]
29
- end
49
+ Chat.refresh(msgs)
30
50
  when "-h"
31
- puts "Do it without help. You are shit"
51
+ Chat.help
32
52
  when "exit"
33
53
  break
34
- else
54
+ else
55
+ Chat.push_msg(con, user, msg)
35
56
 
36
- con.query("INSERT INTO chat (user, msg) VALUES ('#{user}', '#{msg}')")
37
57
 
38
58
  end
39
59
 
40
60
  end
41
61
  end
62
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chat_by_rznvls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Ovcharov
@@ -9,13 +9,44 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2017-11-09 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mysql2
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: digest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  description: A simple chat
14
42
  email: rozenvil13@gmail.com
15
- executables: []
43
+ executables:
44
+ - chatr8s
16
45
  extensions: []
17
46
  extra_rdoc_files: []
18
47
  files:
48
+ - bin/chatr8s
49
+ - lib/chatC.rb
19
50
  - lib/chat_by_rznvls.rb
20
51
  homepage: http://rubygems.org/gems/chat_by_rznvls
21
52
  licenses: