examples/marking.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Wed, 28 Nov 2012 20:17:53 +0200
changeset 146 04d19c9c1196
parent 125 3e2421384d7a
permissions -rw-r--r--
Fix module loading problem
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
58
aa3376776cf2 Cosmetic comment changes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 34
diff changeset
     1
aa3376776cf2 Cosmetic comment changes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 34
diff changeset
     2
-- MARKING
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
125
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
     4
-- public functions:
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
     5
--  * mark
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
     6
--  * unmark
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
     7
--  * mark_toggle
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
     8
--  * marked
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
     9
--  * foreach_marked
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    10
--  * marked_clear
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    11
-- binds 331 (Ins)
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    12
-- FIXME
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    13
--  * freezes on loading
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    14
-- TODO:
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    15
--  * test
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    16
--  * check jid type
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    17
--  * print marked/unmarked to log
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    18
--  * check command formatting
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    19
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    20
local marked_jids = {}
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
function mark ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
	local jid = main.current_buddy ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
	marked_jids[jid] = true
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
	main.print_info ( jid, "Marked" )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
function unmark ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
	local jid = main.current_buddy ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
	marked_jids[jid] = nil
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
	main.print_info ( jid, "Unmarked" )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
function mark_toggle ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
	local jid = main.current_buddy ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
	if marked_jids[jid] then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
		return unmark ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    38
	else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
		return mark ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
function marked ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
	local ret = {}
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
	for jid, v in pairs ( marked_jids ) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    46
		table.insert ( ret, jid )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
	return ret
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    50
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    51
function foreach_marked ( callback )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    52
	for jid, v in pairs ( marked_jids ) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    53
		if v then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    54
			callback ( jid )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    55
		end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    56
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    57
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    58
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    59
function marked_clear ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    60
	marked_jids = {}
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    61
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    62
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
    63
main.command ( 'marked',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    64
	function ( args )
34
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    65
		local cmd = args[1]
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    66
		if cmd == 'clear' then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    67
			marked_clear ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    68
		elseif cmd == 'do' then
34
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    69
			local command = args[2]
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    70
			foreach_marked (
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    71
				function ( jid )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    72
					main.run ( string.format ( command, jid ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    73
				end )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    74
		else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    75
			print ( "Marked jids:" )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    76
			foreach_marked (
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    77
				function ( jid )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    78
					print ( ' - ' .. jid )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    79
				end )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
		end
34
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    81
	end, true, { 'clear', 'do' } )
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
    83
-- Ins
34
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    84
if not main.binding ( '331' ) then
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    85
	main.binding ( '331', 'lua mark_toggle ()' )
125
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    86
	main.hook ( 'hook-lua-quit',
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    87
		function ( args )
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    88
			main.binding ( '331', nil )
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    89
		end )
34
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    90
end
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
    91
125
3e2421384d7a Examples updates (shortenurl)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 84
diff changeset
    92
-- vim: se ts=4 sw=4: --