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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
|
*****************************
grauphel - tomboy REST server
*****************************
nextCloud__ application implementing the `Tomboy`__ `REST API`__ for syncing notes.
Pretty stable.
__ https://nextcloud.com/
__ https://wiki.gnome.org/Apps/Tomboy
__ https://wiki.gnome.org/Apps/Tomboy/Synchronization/REST/1.0
.. contents::
======
Status
======
What works
==========
- Note synchronization
- OAuth token management interface
- Database management interface (reset)
- Viewing notes
- Searching notes
- Downloading notes as HTML and reStructuredText
What is missing
===============
- Web interface to edit notes. I will probably not implement this.
Patches welcome :-)
=================
Supported clients
=================
* Conboy__ (Nokia N900 Maemo)
* Tomboy__ (Linux, Windows)
* Tomdroid__ (Android)
__ http://conboy.garage.maemo.org/
__ https://wiki.gnome.org/Apps/Tomboy
__ https://github.com/tomboy-notes/tomdroid
Known working versions
======================
grauphel 0.7.6 is known to work with:
* Tomboy 1.15.2, Linux
* Tomboy 1.15.1, Windows
* Tomdroid 0.7.5, Android 4.4.1
See the HowTo__ document for client-specific configuration instructions.
__ docs/howto.rst
=============
Functionality
=============
Search
======
You can use nextCloud's global search on the top right.
During search, the note's titles, tags and content are searched.
Search syntax:
``foo``
Search for notes containing "foo"
``foo bar``
Search for notes containing "foo" and "bar"
``"foo bar" baz``
Search for notes containing "foo bar" and "baz"
``foo -bar``
Search for notes containing "foo" but not "bar"
============
Dependencies
============
* PHP
* PHP `oauth extension`__
__ http://pecl.php.net/package/oauth
============
Installation
============
.. note::
grauphel needs to be activated for all users.
It will not work with the "enable only for specific groups" setting.
App store installation
======================
#. Log into nextcloud as administrator
#. Goto "Apps"
#. Enable experimental apps in the settings
#. Click "Productivity"
#. Look for "grauphel - Tomboy sync server"
#. Click "Activate"
Manual installation
===================
#. SSH onto your web server
#. Navigate to the nextcloud ``apps`` directory, often in ``/var/www/nextcloud/apps``
#. Download the latest release from http://cweiske.de/grauphel.htm#download
and extract it.
For example::
$ wget http://cweiske.de/download/grauphel/grauphel-0.7.6.tar.gz
$ tar xjvf grauphel-0.7.6.tar.gz
$ rm grauphel-0.7.6.tar.gz
You do have a directory ``/var/www/nextcloud/apps/grauphel`` now.
#. Using your browser, login as administrator into nextCloud and click
the "Apps" icon in the main menu ("+" icon).
#. Click on "Grauphel: Tomboy note server" and then on the "Enable" button.
#. In the main menu, click the "Tomboy notes" icon.
It may be that grauphel now shows you an error message::
PHP extension "oauth" is required
You have to install the PHP PECL oauth extension now.
On Debian 9 or higher, do the following::
$ apt install php-oauth
$ phpenmod oauth
$ /etc/init.d/apache2 restart
Reload the nextCloud page in your browser now.
.. note::
``oauth-1.2.3`` is only needed on PHP 5.x
For PHP 7 simply use ``pecl install oauth``.
========
Download
========
.. LATESTRELEASE
See `grauphel downloads page <http://cweiske.de/grauphel-download.htm>`_
for all released versions.
======
Author
======
Christian Weiske, cweiske@cweiske.de, http://cweiske.de/
=====
Links
=====
- `Homepage`__
- `grauphel on apps.nextcloud.com`__
- `Source code repository`__
- `Github source code mirror`__
__ http://cweiske.de/grauphel.htm
__ http://apps.nextcloud.com/apps/grauphel
__ http://git.cweiske.de/grauphel.git/
__ https://github.com/cweiske/grauphel
=================
Development hints
=================
* JSON coming from Tomboy: Title is html-escaped already
(e.g. ``>`` is ``>``).
We store it that way in the database, so there is no need to escape the
output.
* ``latest-sync-revision`` sent from Tomboy during PUT sync is already
incremented by 1.
Unit testing
============
- `ownCloud unit testing documentation`__
- `grauphel on Travis CI`__
.. image:: https://travis-ci.org/cweiske/grauphel.svg
:target: https://travis-ci.org/cweiske/grauphel
__ https://doc.owncloud.org/server/8.0/developer_manual/core/unit-testing.html
__ https://travis-ci.org/cweiske/grauphel
Releasing grauphel
==================
To release a new version, do the following:
#. Increase version number in ``appinfo/version`` and ``appinfo/info.xml``.
#. Validate ``appinfo/info.xml``::
$ xmllint --noout --schema tools/info.xsd appinfo/info.xml
#. Validate ``appinfo/database.xml``::
$ xmllint --noout --schema tools/database.xsd appinfo/database.xml
#. Fill the ``ChangeLog`` file with the changes since the last release,
mention the new version number.
#. Update ``README.rst`` and increase the version number
#. Create the grauphel release file with::
$ phing
The file will be in ``dist/``
#. Test the release on a server
#. Tag the release in git
#. Upload the release to http://cweiske.de/grauphel.htm with::
$ cd ~/Dev/html/cweiske.de
$ ./scripts/update-grauphel.sh
#. Upload the new release on
https://apps.nextcloud.com/developer/apps/releases/new
Signature::
$ openssl dgst -sha512 -sign ~/.nextcloud/certificates/grauphel.key dist/grauphel-0.7.6.tar.gz | openssl base64
|