I swear, this stream is gonna cause anger management issues
This commit is contained in:
parent
2604bbe2cb
commit
3985aba03f
29
stuff.lisp
29
stuff.lisp
|
@ -173,16 +173,22 @@
|
||||||
;; and specify the speed manually, and then it works.
|
;; and specify the speed manually, and then it works.
|
||||||
;;
|
;;
|
||||||
;; Wouldn't it be nice if people documented this sort of thing?
|
;; Wouldn't it be nice if people documented this sort of thing?
|
||||||
|
;;
|
||||||
|
;; ### Part II: The Fucking Stream Strikes Back ###
|
||||||
|
;; ...and, after another hour of debugging, I found out you have to specify the `name'
|
||||||
|
;; arg, otherwise it breaks -- but ONLY randomly and once you decide to deploy it
|
||||||
|
;; in production, of course.
|
||||||
(let ((source (make-xmpp-source comp))
|
(let ((source (make-xmpp-source comp))
|
||||||
(fucking-stream (cxml:make-xstream (component-socket comp)
|
(fucking-stream (cxml:make-xstream (component-socket comp)
|
||||||
:speed 1 ; FFFFFFFFUUUUUUUU
|
:speed 1 ; FFFFFFFFUUUUUUUU
|
||||||
|
:name (cxml::make-stream-name ; AAAARGH
|
||||||
|
:entity-name "main document"
|
||||||
|
:entity-kind :main
|
||||||
|
:uri nil)
|
||||||
|
:name "XMPP server stream"
|
||||||
:initial-speed 1)))
|
:initial-speed 1)))
|
||||||
(handler-case
|
|
||||||
(cxml:parse fucking-stream source
|
(cxml:parse fucking-stream source
|
||||||
:recode t)
|
:recode t)))
|
||||||
(error (e)
|
|
||||||
(format *debug-io* "~&Component listen thread failed: ~A~%" e)
|
|
||||||
(emit :error comp e)))))
|
|
||||||
|
|
||||||
(defmacro with-component-xml-output ((comp) &body body)
|
(defmacro with-component-xml-output ((comp) &body body)
|
||||||
(let ((ret-sym (gensym)))
|
(let ((ret-sym (gensym)))
|
||||||
|
@ -1478,6 +1484,12 @@ WhatsXMPP represents users as u440123456789 and groups as g1234-5678."
|
||||||
(on :connected ret (lambda () (wa-resetup-users ret)))
|
(on :connected ret (lambda () (wa-resetup-users ret)))
|
||||||
ret))))
|
ret))))
|
||||||
|
|
||||||
|
#+sbcl
|
||||||
|
(defun report-error-and-die (err)
|
||||||
|
(format t "ERROR: ~A~%Backtrace: ~A~%" err
|
||||||
|
(trivial-backtrace:print-backtrace err))
|
||||||
|
(sb-ext:exit :code 1 :abort t))
|
||||||
|
|
||||||
#+sbcl
|
#+sbcl
|
||||||
(defun main ()
|
(defun main ()
|
||||||
"Hacky main() function for running this in 'the real world' (outside emacs)"
|
"Hacky main() function for running this in 'the real world' (outside emacs)"
|
||||||
|
@ -1486,14 +1498,11 @@ WhatsXMPP represents users as u440123456789 and groups as g1234-5678."
|
||||||
(setf swank:*configure-emacs-indentation* nil)
|
(setf swank:*configure-emacs-indentation* nil)
|
||||||
(swank:create-server :dont-close t)
|
(swank:create-server :dont-close t)
|
||||||
(setf *debugger-hook* (lambda (condition hook)
|
(setf *debugger-hook* (lambda (condition hook)
|
||||||
(declare (ignore hook))
|
(report-error-and-die condition)))
|
||||||
(format t "ERROR: ~A~%" condition)
|
|
||||||
(sb-ext:exit :code 1 :abort t)))
|
|
||||||
(format t "*mario voice* Here we go!~%")
|
(format t "*mario voice* Here we go!~%")
|
||||||
(defparameter *comp* (whatsxmpp-init))
|
(defparameter *comp* (whatsxmpp-init))
|
||||||
(on :error *comp* (lambda (e)
|
(on :error *comp* (lambda (e)
|
||||||
(format t "ERROR: ~A~%" e)
|
(report-error-and-die e)))
|
||||||
(sb-ext:exit :code 1 :abort t)))
|
|
||||||
;; don't pretty-print stuff with newlines
|
;; don't pretty-print stuff with newlines
|
||||||
(setf *print-right-margin* most-positive-fixnum)
|
(setf *print-right-margin* most-positive-fixnum)
|
||||||
;; We don't have anything better to do, so let's wait on a condition
|
;; We don't have anything better to do, so let's wait on a condition
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
(defsystem "whatsxmpp"
|
(defsystem "whatsxmpp"
|
||||||
:depends-on ("usocket" "bordeaux-threads" "event-emitter" "blackbird" "cxml" "ironclad" "uuid" "sqlite" "whatscl" "drakma" "local-time" "trivial-timers" "swank")
|
:depends-on ("usocket" "bordeaux-threads" "event-emitter" "blackbird" "cxml" "ironclad" "uuid" "sqlite" "whatscl" "drakma" "local-time" "trivial-timers" "swank" "trivial-backtrace")
|
||||||
:serial t
|
:serial t
|
||||||
:build-operation "program-op"
|
:build-operation "program-op"
|
||||||
:build-pathname "whatsxmpp"
|
:build-pathname "whatsxmpp"
|
||||||
|
|
Loading…
Reference in a new issue