Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
poezio
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
204
Issues
204
List
Boards
Labels
Service Desk
Milestones
Merge Requests
9
Merge Requests
9
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poezio
poezio
Commits
865ab031
Commit
865ab031
authored
Jan 26, 2010
by
louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nettoyage
parent
b0b4dd1f
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
67 additions
and
42 deletions
+67
-42
src/client.py
src/client.py
+3
-3
src/config.py
src/config.py
+7
-2
src/connection.py
src/connection.py
+6
-6
src/gui.py
src/gui.py
+38
-24
src/logging.py
src/logging.py
+7
-7
src/poezio.cfg
src/poezio.cfg
+6
-0
No files found.
src/client.py
View file @
865ab031
...
...
@@ -18,9 +18,6 @@
# along with Poezio. If not, see <http://www.gnu.org/licenses/>.
import
sys
#sys.stderr = open('errors', 'w') # never print anyerror
#sys.stdout = open('salut', 'w')
from
connection
import
Connection
from
multiuserchat
import
MultiUserChat
from
config
import
config
...
...
@@ -28,6 +25,9 @@ from handler import Handler
from
gui
import
Gui
from
curses
import
wrapper
,
initscr
logfile
=
config
.
get
(
'logfile'
)
#sys.stderr = open(logfile, 'a') # print the errors in the logfile
class
Client
(
object
):
"""
Main class
...
...
src/config.py
View file @
865ab031
...
...
@@ -33,6 +33,10 @@ class Config(RawConfigParser):
def
get
(
self
,
option
):
return
RawConfigParser
.
get
(
self
,
self
.
defsection
,
option
)
def
rget
(
self
,
option
):
res
=
self
.
get
(
option
)
print
res
def
getint
(
self
,
option
):
return
int
(
self
.
get
(
option
))
...
...
@@ -46,8 +50,9 @@ class Config(RawConfigParser):
RawConfigParser
.
set
(
self
,
self
.
defsection
,
option
,
value
)
def
save
(
self
):
with
copen
(
self
.
filename
,
"w"
,
"utf-8"
,
"ignore"
)
as
f
:
RawConfigParser
.
write
(
self
,
f
)
f
=
copen
(
self
.
filename
,
"w"
,
"utf-8"
,
"ignore"
)
RawConfigParser
.
write
(
self
,
f
)
f
.
close
()
def
setAndSave
(
self
,
option
,
value
):
self
.
set
(
option
,
value
)
...
...
src/connection.py
View file @
865ab031
...
...
@@ -21,7 +21,7 @@ import sys
import
xmpp
from
config
import
config
from
logging
import
log
from
logging
import
log
ger
from
threading
import
Thread
from
multiuserchat
import
MultiUserChat
from
handler
import
Handler
...
...
@@ -40,23 +40,23 @@ class Connection(Thread):
self
.
online
=
0
# 1:connected, 2:auth confirmed
self
.
jid
=
''
# we don't know our jid yet (anon account)
if
not
self
.
server
:
log
.
error
(
'You should set a server in the configuration file'
)
log
ger
.
error
(
'You should set a server in the configuration file'
)
self
.
port
=
int
(
config
.
get
(
'port'
))
if
not
self
.
port
:
log
.
warning
(
'No port set in configuration file, defaulting to 5222'
)
log
ger
.
warning
(
'No port set in configuration file, defaulting to 5222'
)
self
.
port
=
5222
self
.
client
=
xmpp
.
Client
(
self
.
server
,
debug
=
[])
def
run
(
self
):
"""
run in a thread
connect to server
"""
self
.
client
=
xmpp
.
Client
(
self
.
server
,
debug
=
[])
if
not
self
.
connect_to_server
(
self
.
server
,
self
.
port
):
log
.
error
(
'Could not connect to server'
)
log
ger
.
error
(
'Could not connect to server'
)
sys
.
exit
(
-
1
)
if
not
self
.
authenticate
():
log
.
error
(
'Could not authenticate to server'
)
log
ger
.
error
(
'Could not authenticate to server'
)
sys
.
exit
(
-
1
)
self
.
client
.
sendInitPresence
()
self
.
online
=
1
# 2 when confirmation of auth is received
...
...
src/gui.py
View file @
865ab031
...
...
@@ -24,6 +24,8 @@ from curses import textpad
import
locale
from
datetime
import
datetime
from
logging
import
logger
locale
.
setlocale
(
locale
.
LC_ALL
,
''
)
code
=
locale
.
getpreferredencoding
()
...
...
@@ -119,13 +121,21 @@ class Gui(object):
'prev'
:
self
.
rotate_rooms_right
,
}
self
.
handler
=
Handler
()
self
.
handler
.
connect
(
'on-connected'
,
self
.
on_connected
)
self
.
handler
.
connect
(
'join-room'
,
self
.
join_room
)
self
.
handler
.
connect
(
'room-presence'
,
self
.
room_presence
)
self
.
handler
.
connect
(
'room-message'
,
self
.
room_message
)
def
current_room
(
self
):
return
self
.
rooms
[
0
]
def
get_room_by_name
(
self
,
name
):
for
room
in
self
.
rooms
:
if
room
.
name
==
name
:
return
room
return
None
def
init_curses
(
self
,
stdscr
):
curses
.
start_color
()
curses
.
noecho
()
...
...
@@ -135,48 +145,50 @@ class Gui(object):
curses
.
init_pair
(
4
,
curses
.
COLOR_BLUE
,
curses
.
COLOR_BLACK
)
# Participant
curses
.
init_pair
(
5
,
curses
.
COLOR_WHITE
,
curses
.
COLOR_BLACK
)
# Visitor
def
reset_curses
(
self
):
curses
.
echo
()
def
on_connected
(
self
):
pass
def
join_room
(
self
,
room
,
nick
):
self
.
rooms
.
insert
(
0
,
Room
(
room
,
nick
))
self
.
window
.
refresh
(
self
.
rooms
[
0
]
)
self
.
window
.
refresh
(
self
.
current_room
()
)
def
rotate_rooms_left
(
self
,
args
):
self
.
rooms
.
append
(
self
.
rooms
.
pop
(
0
))
self
.
window
.
refresh
(
self
.
rooms
[
0
]
)
self
.
window
.
refresh
(
self
.
current_room
()
)
def
rotate_rooms_right
(
self
,
args
):
self
.
rooms
.
insert
(
0
,
self
.
rooms
.
pop
())
self
.
window
.
refresh
(
self
.
rooms
[
0
]
)
self
.
window
.
refresh
(
self
.
current_room
()
)
def
room_message
(
self
,
stanza
):
if
stanza
.
getType
()
!=
'groupchat'
:
return
# ignore all messages not comming from a MUC
room_from
=
stanza
.
getFrom
().
getStripped
()
nick_from
=
stanza
.
getFrom
().
getResource
()
for
room
in
self
.
rooms
:
if
room_from
==
room
.
name
:
room
.
add_message
(
nick_from
,
stanza
.
getBody
())
if
room
==
self
.
rooms
[
0
]:
self
.
window
.
text_win
.
refresh
(
room
.
lines
)
self
.
window
.
user_win
.
refresh
(
room
.
users
)
self
.
window
.
input
.
refresh
()
# self.window.refresh(self.rooms[0])
curses
.
doupdate
()
break
room
=
self
.
get_room_by_name
(
name
)
if
not
room
:
return
logger
.
warning
(
"message received for a non-existing room: %s"
%
(
name
))
room
.
add_message
(
nick_from
,
stanza
.
getBody
())
if
room
==
self
.
current_room
():
self
.
window
.
text_win
.
refresh
(
room
.
lines
)
self
.
window
.
user_win
.
refresh
(
room
.
users
)
self
.
window
.
input
.
refresh
()
curses
.
doupdate
()
def
room_presence
(
self
,
stanza
):
from_nick
=
stanza
.
getFrom
().
getResource
()
from_room
=
stanza
.
getFrom
().
getStripped
()
for
room
in
self
.
rooms
:
if
from_room
==
room
.
name
:
room
.
on_presence
(
stanza
,
from_nick
)
if
room
==
self
.
rooms
[
0
]:
self
.
window
.
text_win
.
refresh
(
room
.
lines
)
self
.
window
.
user_win
.
refresh
(
room
.
user
s
)
curses
.
doupdate
(
)
break
room
=
self
.
get_room_by_name
()
if
not
room
:
return
logger
.
warning
(
"presence received for a non-existing room: %s"
%
(
name
)
)
room
.
on_presence
(
stanza
,
from_nick
)
if
room
==
self
.
current_rooom
():
self
.
window
.
text_win
.
refresh
(
room
.
line
s
)
self
.
window
.
user_win
.
refresh
(
room
.
users
)
curses
.
doupdate
()
def
execute
(
self
):
line
=
self
.
window
.
input
.
get_text
()
...
...
@@ -190,8 +202,9 @@ class Gui(object):
func
=
self
.
commands
[
command
]
func
(
args
)
return
if
self
.
rooms
[
0
].
name
!=
'Info'
:
self
.
muc
.
send_message
(
self
.
rooms
[
0
].
name
,
line
)
if
self
.
current_room
().
name
!=
'Info'
:
self
.
muc
.
send_message
(
self
.
current_room
().
name
,
line
)
self
.
window
.
input
.
refresh
()
def
command_join
(
self
,
args
):
room
=
args
[
0
]
...
...
@@ -199,6 +212,7 @@ class Gui(object):
self
.
join_room
(
room
,
'poezio'
)
def
command_quit
(
self
,
args
):
self
.
reset_curses
()
sys
.
exit
()
def
main_loop
(
self
,
stdscr
):
...
...
src/logging.py
View file @
865ab031
...
...
@@ -19,6 +19,7 @@
from
config
import
config
import
sys
from
datetime
import
datetime
class
Logger
(
object
):
"""
...
...
@@ -29,17 +30,16 @@ class Logger(object):
self
.
logfile
=
config
.
get
(
'logfile'
)
def
warning
(
self
,
msg
):
# change me
# add timestamp and stuff like that, it's cool
print
'Warning/error '
+
msg
if
self
.
logfile
:
fd
=
open
(
self
.
logfile
,
'a'
)
fd
.
write
(
msg
+
'
\n
'
)
fd
.
write
(
datetime
.
now
().
strftime
(
"%H:%M:%S"
)
+
' Warning ['
+
msg
+
']
'
)
fd
.
close
()
def
error
(
self
,
msg
):
# change me too
self
.
warning
(
msg
)
if
self
.
logfile
:
fd
=
open
(
self
.
logfile
,
'a'
)
fd
.
write
(
datetime
.
now
().
strftime
(
"%H:%M:%S"
)
+
' Error ['
+
msg
+
']'
)
fd
.
close
()
sys
.
exit
(
-
1
)
log
=
Logger
()
log
ger
=
Logger
()
src/poezio.cfg
0 → 100644
View file @
865ab031
[Poezio]
logfile = salut
resource = poezio
server = louiz.org
port = 5222
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment