[go: up one dir, main page]

Menu

[r19]: / profileStore.rb  Maximize  Restore  History

Download this file

160 lines (149 with data), 4.8 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
require 'rubygems'
require 'openssl'
$key = "A75435F0B240012A9489000C2952E41F"
class String
def encrypt(key=$key)
e = OpenSSL::Cipher::Cipher.new 'DES-EDE3-CBC'
e.encrypt key
s = e.update self
s << e.final
s = s.unpack('H*')[0].upcase
s
end # def encrypt(key=$key)
def decrypt(key=$key)
e = OpenSSL::Cipher::Cipher.new 'DES-EDE3-CBC'
e.decrypt key
s = self.lines.to_a.pack("H*").unpack("C*").pack("c*")
s = e.update s
s << e.final
end #def decrypt(key=$key)
end #class String
class SaveProfile
def saveFile(server,port,user,pass)
@profile_file_name = Dir.home.to_s + "/.rmldonkey/profile"
if File.exists?(@profile_file_name)
file_aux = String.new
file_temp = String.new
File.open(@profile_file_name) do |f|
f.each do |line|
file_aux += line.to_s
end #f.each do |line|
end #File.open(@profile_file_name) do |f|
server_to_s_encrypt = server.to_s.encrypt("password") + "\n"
port_to_s_encrypt = port.to_s.encrypt("password") + "\n"
if user != " "
user_to_s_encrypt = user.to_s.encrypt("password") + "\n"
else
user_to_s_encrypt = "\n"
end # if user != nil
if pass != " "
pass_to_s_encrypt = pass.to_s.encrypt("password") + "\n"
else
pass_to_s_encrypt = "\n"
end # if pass != nil
file_temp = server_to_s_encrypt + port_to_s_encrypt + user_to_s_encrypt + pass_to_s_encrypt
if file_aux != file_temp
self.makeSave(server,port,user,pass)
else
#do nothing or debug purpose display files
#puts "file_aux" + "\n" + file_aux
#puts "file_temp" + "\n" + file_temp
end #if file_aux != file_temp
else
if File.exists?(Dir.home.to_s + "/.rmldonkey")
if File.directory?(Dir.home.to_s + "/.rmldonkey")
else
File.delete(home.to_s + "/.rmldonkey")
Dir.mkdir(home.to_s + "/.rmldonkey", 0700)
end #if File.directory?(Dir.home.to_s + "/.rmldonkey")
else
Dir.mkdir(Dir.home.to_s + "/.rmldonkey", 0700)
end #if File.exists?(Dir.home.to_s + "/.rmldonkey")
self.makeSave(server,port,user,pass)
end #File.exists?(Dir.home.to_s + "/.rmldonkey/profile")
end #def saveFile(server,port,user,pass)
def makeSave(server,port,user,pass)
f = File.new(@profile_file_name,"w")
server_to_s_encrypt = server.to_s.encrypt("password") + "\n"
port_to_s_encrypt = port.to_s.encrypt("password") + "\n"
if user != " "
user_to_s_encrypt = user.to_s.encrypt("password") + "\n"
else
user_to_s_encrypt = "\n"
end # if user != nil
if pass != " "
pass_to_s_encrypt = pass.to_s.encrypt("password") + "\n"
else
pass_to_s_encrypt = "\n"
end # if pass != nil
f.write(server_to_s_encrypt)
f.write(port_to_s_encrypt)
f.write(user_to_s_encrypt)
f.write(pass_to_s_encrypt)
f.close
end #def makeSave(server,port,user,pass)
end #class SaveProfile
#usage
#save_profile = SaveProfile.new
#save_profile.saveFile("server1","port","user","pass")
#save_profile.saveFile("server2","port","user","pass")
class ReadProfile
def initialize
profile_file_name = Dir.home.to_s + "/.rmldonkey/profile"
if File.exists?(profile_file_name)
File.open(profile_file_name) do |f|
i = 0
f.each do |line|
case i
when 0
@server = line.chomp.to_s
when 1
@port = line.chomp.to_s
when 2
@user = line.chomp.to_s
when 3
@pass = line.chomp.to_s
end # case i
i += 1
end #f.each do |line|
end #File.open(profile_file_name) do |f|
@exist_profile = true
else
@exist_profile = false
end #
end # def initialize
def ExistProfile
return @exist_profile
end # def ExistProfile
def readServer
return @server.to_s.decrypt("password")
end #def readServer
def readPort
return @port.to_s.decrypt("password")
end #def readPort
def readUser
if @user == ""
return ""
else
return @user.to_s.decrypt("password")
end #if @user.to_s = ""
end #def readUser
def readPass
if @pass == ""
return ""
else
return @pass.to_s.decrypt("password")
end #if @pass.to_s = ""
end #def readPass
end #class ReadProfile
#usage
#profile = ReadProfile.new
#if profile.ExistProfile
# puts "***con perfil***"
# puts profile.readServer
# puts profile.readPort
# puts profile.readUser
# puts profile.readPass
#else
# puts "***sin perfil***"
#end