unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#33131] [PATCH 0/4] Add hangups.
@ 2018-10-23 19:07 Tobias Geerinckx-Rice
  2018-10-23 19:10 ` [bug#33131] [PATCH 1/4] gnu: Add python-readlike Tobias Geerinckx-Rice
  2018-10-24 14:20 ` [bug#33131] [PATCH 0/4] " Leo Famulari
  0 siblings, 2 replies; 7+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-23 19:07 UTC (permalink / raw)
  To: 33131

Guix,

Hangups is an ncurses client for Google's Hangouts IM thing. It's 
orders of magnitude more pleasant to use than the Web interface, 
and a lot more libre. The platform itself is proprietary rubbish, 
but better than dying alone.

So there's that,

T G-R

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#33131] [PATCH 1/4] gnu: Add python-readlike.
  2018-10-23 19:07 [bug#33131] [PATCH 0/4] Add hangups Tobias Geerinckx-Rice
@ 2018-10-23 19:10 ` Tobias Geerinckx-Rice
  2018-10-23 19:10   ` [bug#33131] [PATCH 2/4] gnu: Add python-reparser Tobias Geerinckx-Rice
                     ` (2 more replies)
  2018-10-24 14:20 ` [bug#33131] [PATCH 0/4] " Leo Famulari
  1 sibling, 3 replies; 7+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-23 19:10 UTC (permalink / raw)
  To: 33131

* gnu/packages/python.scm (python-readlike, python2-readlike):
New public variables.
---
 gnu/packages/python.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index dee7d9a06..d9f3ebfc5 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14524,3 +14524,30 @@ can be retrieved in constant time.  Some of the terminology is inspired by
 LISP.  It is possible to create an improper list by creating a @code{Pair}
 with a non-list @code{cdr}.")
     (license license:gpl3+)))
+
+(define-public python-readlike
+  (package
+    (name "python-readlike")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "readlike" version))
+       (sha256
+        (base32 "027w8fvi50ksl57q0a7kb5zvmq8jxaawnviib1jdqw0p3igvm1j4"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/jangler/readlike")
+    (synopsis "GNU Readline-like line editing module")
+    (description
+     "This Python module provides line editing functions similar to the default
+Emacs-style ones of GNU Readline.  Unlike the Python standard library's
+@code{readline} package, this one allows access to those capabilties in settings
+outside of a standard command-line interface.  It is especially well-suited to
+interfacing with Urwid, due to a shared syntax for describing key inputs.
+
+Currently, all stateless Readline commands are implemented.  Yanking and history
+are not supported.")
+    (license license:expat)))
+
+(define-public python2-readlike
+  (package-with-python2 python-readlike))
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#33131] [PATCH 2/4] gnu: Add python-reparser.
  2018-10-23 19:10 ` [bug#33131] [PATCH 1/4] gnu: Add python-readlike Tobias Geerinckx-Rice
@ 2018-10-23 19:10   ` Tobias Geerinckx-Rice
  2018-10-23 19:10   ` [bug#33131] [PATCH 3/4] gnu: Add python-mechanicalsoup Tobias Geerinckx-Rice
  2018-10-23 19:10   ` [bug#33131] [PATCH 4/4] gnu: Add hangups Tobias Geerinckx-Rice
  2 siblings, 0 replies; 7+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-23 19:10 UTC (permalink / raw)
  To: 33131

* gnu/packages/python.scm (python-reparser, python2-reparser):
New public variable.
---
 gnu/packages/python.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index d9f3ebfc5..fbb280224 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14551,3 +14551,29 @@ are not supported.")
 
 (define-public python2-readlike
   (package-with-python2 python-readlike))
+
+(define-public python-reparser
+  (package
+    (name "python-reparser")
+    (version "1.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "ReParser" version))
+       (sha256
+        (base32 "0nniqb69xr0fv7ydlmrr877wyyjb61nlayka7xr08vlxl9caz776"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/xmikos/reparser")
+    (synopsis "Simple lexer/parser for inline markup based on regular expressions")
+    (description
+     "This Python library provides a simple lexer/parser for inline markup based
+on regular expressions.")
+    (license license:expat)))
+
+(define-public python2-reparser
+  (let ((reparser (package-with-python2
+                   (strip-python2-variant python-reparser))))
+    (package (inherit reparser)
+             (propagated-inputs
+              `(("python2-enum34" ,python2-enum34)
+                ,@(package-propagated-inputs reparser))))))
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#33131] [PATCH 3/4] gnu: Add python-mechanicalsoup.
  2018-10-23 19:10 ` [bug#33131] [PATCH 1/4] gnu: Add python-readlike Tobias Geerinckx-Rice
  2018-10-23 19:10   ` [bug#33131] [PATCH 2/4] gnu: Add python-reparser Tobias Geerinckx-Rice
@ 2018-10-23 19:10   ` Tobias Geerinckx-Rice
  2018-10-23 19:10   ` [bug#33131] [PATCH 4/4] gnu: Add hangups Tobias Geerinckx-Rice
  2 siblings, 0 replies; 7+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-23 19:10 UTC (permalink / raw)
  To: 33131

* gnu/packages/python-web.scm (python-mechanicalsoup)
(python2-mechanicalsoup): New public variable.
---
 gnu/packages/python-web.scm | 38 +++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index f8052458a..eda796e01 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -60,6 +60,7 @@
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages time)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (srfi srfi-1))
@@ -255,6 +256,43 @@ other HTTP libraries.")
 (define-public python2-httplib2
   (package-with-python2 python-httplib2))
 
+(define-public python-mechanicalsoup
+  (package
+    (name "python-mechanicalsoup")
+    (version "0.11.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "MechanicalSoup" version))
+       (sha256
+        (base32 "0k59wwk75q7nz6i6gynvzhagy02ql0bv7py3qqcwgjw7607yq4i7"))))
+    (build-system python-build-system)
+    (arguments
+     ;; TODO: Enable tests when python-flake8@3.5 hits master.
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("python-lxml" ,python-lxml)
+       ("python-requests" ,python-requests)
+       ("python-six" ,python-six)))
+    ;; (native-inputs
+    ;;  ;; For tests.
+    ;;  `(("python-pytest-flake8" ,python-pytest-flake8)
+    ;;    ("python-pytest-httpbin" ,python-pytest-httpbin)
+    ;;    ("python-pytest-mock" ,python-pytest-mock)
+    ;;    ("python-pytest-runner" ,python-pytest-runner)
+    ;;    ("python-requests-mock" ,python-requests-mock)))
+    (home-page "https://mechanicalsoup.readthedocs.io/")
+    (synopsis "Python library for automating website interaction")
+    (description
+     "MechanicalSoup is a Python library for automating interaction with
+websites.  It automatically stores and sends cookies, follows redirects, and can
+follow links and submit forms.  It doesn’t do JavaScript.")
+    (license license:expat)))
+
+(define-public python2-mechanicalsoup
+  (package-with-python2 python-mechanicalsoup))
+
 (define-public python-sockjs-tornado
   (package
     (name "python-sockjs-tornado")
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#33131] [PATCH 4/4] gnu: Add hangups.
  2018-10-23 19:10 ` [bug#33131] [PATCH 1/4] gnu: Add python-readlike Tobias Geerinckx-Rice
  2018-10-23 19:10   ` [bug#33131] [PATCH 2/4] gnu: Add python-reparser Tobias Geerinckx-Rice
  2018-10-23 19:10   ` [bug#33131] [PATCH 3/4] gnu: Add python-mechanicalsoup Tobias Geerinckx-Rice
@ 2018-10-23 19:10   ` Tobias Geerinckx-Rice
  2 siblings, 0 replies; 7+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-23 19:10 UTC (permalink / raw)
  To: 33131

* gnu/packages/messaging.scm (hangups): New public variable.
---
 gnu/packages/messaging.scm | 44 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 3f050391b..711b7d0fa 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -71,8 +71,10 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages tcl)
@@ -1719,4 +1721,46 @@ QMatrixClient project.")
     (license (list license:gpl3+ ; all source code
                    license:lgpl3+)))) ; icons/breeze
 
+(define-public hangups
+  (package
+    (name "hangups")
+    (version "0.4.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "hangups" version))
+       (sha256
+        (base32 "0mvpfd5dc3zgcvwfidcd2qyn59xl5biv728mxifw0ls5rzkc9chs"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'relax-dependencies
+           ;; Relax overly strict package version specifications.
+           (lambda _
+             (substitute* "setup.py"
+               (("==") ">="))
+             #t)))))
+    (propagated-inputs
+     `(("python-aiohttp" ,python-aiohttp)
+       ("python-appdirs" ,python-appdirs)
+       ("python-async-timeout" ,python-async-timeout)
+       ("python-configargparse" ,python-configargparse)
+       ("python-mechanicalsoup" ,python-mechanicalsoup)
+       ("python-protobuf" ,python-protobuf)
+       ("python-readlike" ,python-readlike)
+       ("python-reparser" ,python-reparser)
+       ("python-requests" ,python-requests)
+       ("python-urwid" ,python-urwid)))
+    (home-page "https://hangups.readthedocs.io/")
+    (synopsis "Instant messaging client for Google Hangouts")
+    (description
+     "Hangups is an instant messaging client for Google Hangouts.  It includes
+both a Python library and a reference client with a text-based user interface.
+
+Hangups is implements a reverse-engineered version of Hangouts' proprietary,
+non-interoperable protocol, which allows it to support features like group
+ messaging that aren’t available to clients that connect over XMPP.")
+    (license license:expat)))
+
 ;;; messaging.scm ends here
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#33131] [PATCH 0/4] Add hangups.
  2018-10-23 19:07 [bug#33131] [PATCH 0/4] Add hangups Tobias Geerinckx-Rice
  2018-10-23 19:10 ` [bug#33131] [PATCH 1/4] gnu: Add python-readlike Tobias Geerinckx-Rice
@ 2018-10-24 14:20 ` Leo Famulari
  2018-10-24 21:14   ` bug#33131: " Tobias Geerinckx-Rice
  1 sibling, 1 reply; 7+ messages in thread
From: Leo Famulari @ 2018-10-24 14:20 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: 33131

[-- Attachment #1: Type: text/plain, Size: 261 bytes --]

On Tue, Oct 23, 2018 at 09:07:13PM +0200, Tobias Geerinckx-Rice wrote:
> Guix,
> 
> Hangups is an ncurses client for Google's Hangouts IM thing. It's orders of
> magnitude more pleasant to use than the Web interface, and a lot more libre.

Thanks, LGTM!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#33131: [PATCH 0/4] Add hangups.
  2018-10-24 14:20 ` [bug#33131] [PATCH 0/4] " Leo Famulari
@ 2018-10-24 21:14   ` Tobias Geerinckx-Rice
  0 siblings, 0 replies; 7+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-24 21:14 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 33131-done

Leo Famulari wrote:
> On Tue, Oct 23, 2018 at 09:07:13PM +0200, Tobias Geerinckx-Rice 
> wrote:
>> Guix,
>> 
>> Hangups is an ncurses client for Google's Hangouts IM 
>> thing. It's orders of
>> magnitude more pleasant to use than the Web interface, and a 
>> lot more libre.
>
> Thanks, LGTM!

Thank you!

Pushed as f65fdd95df71f829cbb21542a1bb2cb1de68554c with a small 
tweak (to a leading space in hangups' description which I 
pinky-promise wasn't a test).

Kind regards,

T G-R

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-10-24 21:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-23 19:07 [bug#33131] [PATCH 0/4] Add hangups Tobias Geerinckx-Rice
2018-10-23 19:10 ` [bug#33131] [PATCH 1/4] gnu: Add python-readlike Tobias Geerinckx-Rice
2018-10-23 19:10   ` [bug#33131] [PATCH 2/4] gnu: Add python-reparser Tobias Geerinckx-Rice
2018-10-23 19:10   ` [bug#33131] [PATCH 3/4] gnu: Add python-mechanicalsoup Tobias Geerinckx-Rice
2018-10-23 19:10   ` [bug#33131] [PATCH 4/4] gnu: Add hangups Tobias Geerinckx-Rice
2018-10-24 14:20 ` [bug#33131] [PATCH 0/4] " Leo Famulari
2018-10-24 21:14   ` bug#33131: " Tobias Geerinckx-Rice

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).