tangled
alpha
login
or
join now
mackuba.eu
/
tootify
2
fork
atom
Toot toooooooot (Bluesky-Mastodon cross-poster)
2
fork
atom
overview
issues
pulls
pipelines
watch mode with checking for new posts in a loop
mackuba.eu
2 years ago
b8bc5b62
3663d5f4
+25
-5
2 changed files
expand all
collapse all
unified
split
app
tootify.rb
tootify
+10
app/tootify.rb
···
4
4
require_relative 'mastodon_account'
5
5
6
6
class Tootify
7
7
+
attr_accessor :check_interval
8
8
+
7
9
def initialize
8
10
@bluesky = BlueskyAccount.new
9
11
@mastodon = MastodonAccount.new
12
12
+
@check_interval = 60
10
13
end
11
14
12
15
def login_bluesky(handle)
···
51
54
post_to_mastodon(record['value'])
52
55
53
56
@bluesky.delete_record_at(like_uri)
57
57
+
end
58
58
+
end
59
59
+
60
60
+
def watch
61
61
+
loop do
62
62
+
sync
63
63
+
sleep @check_interval
54
64
end
55
65
end
56
66
+15
-5
tootify
···
3
3
require 'bundler/setup'
4
4
require_relative 'app/tootify'
5
5
6
6
-
$app = Tootify.new
7
7
-
8
6
def run(argv)
9
7
options, args = argv.partition { |x| x.start_with?('-') }
8
8
+
9
9
+
app = Tootify.new
10
10
+
11
11
+
options.each do |o|
12
12
+
if o.start_with?('--interval=')
13
13
+
app.check_interval = o.split('=')[1].to_i
14
14
+
end
15
15
+
end
10
16
11
17
case args.first
12
18
when 'login'
13
19
login(args[1])
14
20
when 'check'
15
15
-
$app.sync
21
21
+
app.sync
22
22
+
when 'watch'
23
23
+
app.watch
16
24
else
17
25
print_help
18
26
end
···
25
33
end
26
34
27
35
def login(name)
36
36
+
app = Tootify.new
37
37
+
28
38
if name =~ /\A[^@]+@[^@]+\z/
29
29
-
$app.login_mastodon(name)
39
39
+
app.login_mastodon(name)
30
40
elsif name =~ /\A@[^@]+\z/
31
31
-
$app.login_bluesky(name)
41
41
+
app.login_bluesky(name)
32
42
elsif name.nil?
33
43
print_help
34
44
else