lita-tox 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +10 -3
- data/ext/tox/extconf.rb +6 -0
- data/ext/tox/tox.c +80 -0
- data/lib/lita/adapters/tox.rb +4 -0
- data/lita-tox.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25e2ab942844a8990a9784e0d004b330231f9939
|
4
|
+
data.tar.gz: 11520285ad007b9c500d73d415db3d474375e481
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b201826ff6de4691bb3c0143a3d118b31b249d4d5a0248bcdf444f62ef4f6a7b786e11f56aa0fdd4e73af4b018c1ba88d89c31a1bb6d5bdd3b7f7e2128296317
|
7
|
+
data.tar.gz: 672c193d9290b8c86f174406974d6578aea1ffc93bf1b248e20e8230ceab70816987c019c46d5eca348b2f30729da3ca3018fa7197123657226795bcb9320911
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v0.3.0](https://github.com/braiden-vasco/lita-tox/tree/v0.3.0) (2015-09-15)
|
4
|
+
[Full Changelog](https://github.com/braiden-vasco/lita-tox/compare/v0.2.0...v0.3.0)
|
5
|
+
|
6
|
+
**Closed issues:**
|
7
|
+
|
8
|
+
- Setup Tox user nickname and status [\#21](https://github.com/braiden-vasco/lita-tox/issues/21)
|
9
|
+
|
3
10
|
## [v0.2.0](https://github.com/braiden-vasco/lita-tox/tree/v0.2.0) (2015-09-14)
|
4
11
|
[Full Changelog](https://github.com/braiden-vasco/lita-tox/compare/v0.1.0...v0.2.0)
|
5
12
|
|
data/README.md
CHANGED
@@ -48,14 +48,21 @@ When **libtoxcore** is installed, add **lita-tox**
|
|
48
48
|
to your Lita instance's Gemfile:
|
49
49
|
|
50
50
|
```ruby
|
51
|
-
gem 'lita-tox', '~> 0.
|
51
|
+
gem 'lita-tox', '~> 0.3.0'
|
52
52
|
```
|
53
53
|
|
54
54
|
### Configuration
|
55
55
|
|
56
|
+
`config.robot.name` will be used as Tox user name
|
57
|
+
|
58
|
+
Mentions in Tox usually use user name, Tox clients usually allow mentioning
|
59
|
+
by writing first letters of user name and pressing `<Tab>`, so don't use
|
60
|
+
`config.robot.mention_name`
|
61
|
+
|
56
62
|
#### Optional attributes
|
57
63
|
|
58
64
|
- `savedata_filename` (String) - Path to file where Tox state will be stored (if provided)
|
65
|
+
- `status` (String) - Tox user status
|
59
66
|
|
60
67
|
#### Example
|
61
68
|
|
@@ -63,11 +70,11 @@ This is an example `lita_config.rb` file:
|
|
63
70
|
|
64
71
|
```ruby
|
65
72
|
Lita.configure do |config|
|
66
|
-
config.robot.name = 'Lita'
|
67
|
-
config.robot.mention_name = 'lita'
|
73
|
+
config.robot.name = 'Lita chat bot'
|
68
74
|
|
69
75
|
config.robot.adapter = :tox
|
70
76
|
|
71
77
|
config.savedata_filename = 'savedata'
|
78
|
+
config.status = "Send me \"#{config.robot.name}: help\""
|
72
79
|
end
|
73
80
|
```
|
data/ext/tox/extconf.rb
CHANGED
@@ -33,5 +33,11 @@ have_library LIBTOXCORE, 'tox_group_message_send' and
|
|
33
33
|
have_library LIBTOXCORE, 'tox_callback_group_invite' and
|
34
34
|
have_library LIBTOXCORE, 'tox_callback_group_message' and
|
35
35
|
have_library LIBTOXCORE, 'tox_group_peernumber_is_ours' and
|
36
|
+
have_library LIBTOXCORE, 'tox_self_get_name_size' and
|
37
|
+
have_library LIBTOXCORE, 'tox_self_get_name' and
|
38
|
+
have_library LIBTOXCORE, 'tox_self_set_name' and
|
39
|
+
have_library LIBTOXCORE, 'tox_self_get_status_message_size' and
|
40
|
+
have_library LIBTOXCORE, 'tox_self_get_status_message' and
|
41
|
+
have_library LIBTOXCORE, 'tox_self_set_status_message' and
|
36
42
|
|
37
43
|
create_makefile "#{NAME}/#{NAME}" or exit(1)
|
data/ext/tox/tox.c
CHANGED
@@ -43,6 +43,10 @@ static VALUE cTox_friend_send_message(VALUE self, VALUE friend_number, VALUE tex
|
|
43
43
|
static VALUE cTox_join_groupchat(VALUE self, VALUE friend_number, VALUE data);
|
44
44
|
static VALUE cTox_group_message_send(VALUE self, VALUE group_number, VALUE text);
|
45
45
|
static VALUE cTox_group_peernumber_is_ours(VALUE self, VALUE group_number, VALUE peer_number);
|
46
|
+
static VALUE cTox_name(VALUE self);
|
47
|
+
static VALUE cTox_name_ASSIGN(VALUE self, VALUE name);
|
48
|
+
static VALUE cTox_status_message(VALUE self);
|
49
|
+
static VALUE cTox_status_message_ASSIGN(VALUE self, VALUE text);
|
46
50
|
|
47
51
|
static void on_friend_request(
|
48
52
|
Tox *tox,
|
@@ -104,6 +108,10 @@ void Init_tox()
|
|
104
108
|
rb_define_method(cTox, "join_groupchat", cTox_join_groupchat, 2);
|
105
109
|
rb_define_method(cTox, "group_message_send", cTox_group_message_send, 2);
|
106
110
|
rb_define_method(cTox, "group_peernumber_is_ours", cTox_group_peernumber_is_ours, 2);
|
111
|
+
rb_define_method(cTox, "name", cTox_name, 0);
|
112
|
+
rb_define_method(cTox, "name=", cTox_name_ASSIGN, 1);
|
113
|
+
rb_define_method(cTox, "status_message", cTox_status_message, 0);
|
114
|
+
rb_define_method(cTox, "status_message=", cTox_status_message_ASSIGN, 1);
|
107
115
|
|
108
116
|
cTox_cOptions = rb_define_class_under(cTox, "Options", rb_cObject);
|
109
117
|
rb_define_alloc_func(cTox_cOptions, cTox_cOptions_alloc);
|
@@ -372,6 +380,78 @@ VALUE cTox_group_peernumber_is_ours(
|
|
372
380
|
return Qfalse;
|
373
381
|
}
|
374
382
|
|
383
|
+
VALUE cTox_name(const VALUE self)
|
384
|
+
{
|
385
|
+
cTox_ *tox;
|
386
|
+
|
387
|
+
char name[TOX_MAX_NAME_LENGTH];
|
388
|
+
size_t name_size;
|
389
|
+
|
390
|
+
Data_Get_Struct(self, cTox_, tox);
|
391
|
+
|
392
|
+
name_size = tox_self_get_name_size(tox->tox);
|
393
|
+
|
394
|
+
if (name_size > 0)
|
395
|
+
tox_self_get_name(tox->tox, (uint8_t*)name);
|
396
|
+
|
397
|
+
return rb_str_new(name, name_size);
|
398
|
+
}
|
399
|
+
|
400
|
+
VALUE cTox_name_ASSIGN(const VALUE self, const VALUE name)
|
401
|
+
{
|
402
|
+
cTox_ *tox;
|
403
|
+
|
404
|
+
bool result;
|
405
|
+
TOX_ERR_SET_INFO error;
|
406
|
+
|
407
|
+
Check_Type(name, T_STRING);
|
408
|
+
|
409
|
+
Data_Get_Struct(self, cTox_, tox);
|
410
|
+
|
411
|
+
result = tox_self_set_name(tox->tox, (uint8_t*)RSTRING_PTR(name), RSTRING_LEN(name), &error);
|
412
|
+
|
413
|
+
if (error != TOX_ERR_SET_INFO_OK || !result)
|
414
|
+
return Qfalse;
|
415
|
+
else
|
416
|
+
return Qtrue;
|
417
|
+
}
|
418
|
+
|
419
|
+
VALUE cTox_status_message(const VALUE self)
|
420
|
+
{
|
421
|
+
cTox_ *tox;
|
422
|
+
|
423
|
+
char text[TOX_MAX_STATUS_MESSAGE_LENGTH];
|
424
|
+
size_t text_size;
|
425
|
+
|
426
|
+
Data_Get_Struct(self, cTox_, tox);
|
427
|
+
|
428
|
+
text_size = tox_self_get_status_message_size(tox->tox);
|
429
|
+
|
430
|
+
if (text_size > 0)
|
431
|
+
tox_self_get_status_message(tox->tox, (uint8_t*)text);
|
432
|
+
|
433
|
+
return rb_str_new(text, text_size);
|
434
|
+
}
|
435
|
+
|
436
|
+
VALUE cTox_status_message_ASSIGN(const VALUE self, const VALUE text)
|
437
|
+
{
|
438
|
+
cTox_ *tox;
|
439
|
+
|
440
|
+
bool result;
|
441
|
+
TOX_ERR_SET_INFO error;
|
442
|
+
|
443
|
+
Check_Type(text, T_STRING);
|
444
|
+
|
445
|
+
Data_Get_Struct(self, cTox_, tox);
|
446
|
+
|
447
|
+
result = tox_self_set_status_message(tox->tox, (uint8_t*)RSTRING_PTR(text), RSTRING_LEN(text), &error);
|
448
|
+
|
449
|
+
if (error != TOX_ERR_SET_INFO_OK || !result)
|
450
|
+
return Qfalse;
|
451
|
+
else
|
452
|
+
return Qtrue;
|
453
|
+
}
|
454
|
+
|
375
455
|
void on_friend_request(
|
376
456
|
Tox *const tox,
|
377
457
|
const uint8_t *const key,
|
data/lib/lita/adapters/tox.rb
CHANGED
@@ -13,6 +13,7 @@ module Lita
|
|
13
13
|
#
|
14
14
|
class Tox < Adapter
|
15
15
|
config :savedata_filename, type: String
|
16
|
+
config :status, type: String
|
16
17
|
|
17
18
|
def initialize(robot)
|
18
19
|
super
|
@@ -29,6 +30,9 @@ module Lita
|
|
29
30
|
|
30
31
|
log.info("ID: #{@tox.id}")
|
31
32
|
|
33
|
+
@tox.name = robot.name if robot.name
|
34
|
+
@tox.status_message = config.status if config.status
|
35
|
+
|
32
36
|
@tox.on_friend_request do |key|
|
33
37
|
@tox.friend_add_norequest(key)
|
34
38
|
end
|
data/lita-tox.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-tox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Braiden Vasco
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|