aggixx

Untitled

Apr 15th, 2015
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. -- Standalone Timer() and GetStream() functions since I've got these setup differently on my channel.
  2.  
  3. MOD.Ticks=0;
  4.  
  5. --timer
  6. local timerevents = {};
  7.  
  8. --example tick function
  9. local function Tick(channel)
  10. if type(MOD.EventTick) == "function" then
  11. local ret = MOD.EventTick(user,msg);
  12. if ret ~= nil then
  13. return ret;
  14. end
  15. end
  16.  
  17. MOD.Ticks = MOD.Ticks + 1;
  18.  
  19. local now = os.time();
  20.  
  21. for k,v in pairs(timerevents)do
  22. if v.start + v.interval <= now then
  23. if v.action ~= nil then
  24. if v.action ~= nil then
  25. if type(v.action) == "function" then
  26. v.action();
  27. return;
  28. else
  29. print(tostring(v.action));
  30. end
  31. end
  32. end
  33.  
  34. if v.recurring then
  35. v.start = v.start + v.interval;
  36. else
  37. timerevents[k] = nil;
  38. end
  39. end
  40. end
  41. end
  42.  
  43. function MOD.GetTimers()
  44. local list = {};
  45. for k,v in pairs(timerevents)do
  46. table.insert(list,k);
  47. end
  48.  
  49. return list;
  50. end
  51.  
  52. function MOD.Timer( name, seconds, action, recurring )
  53. if action == nil then
  54. timerevents[name] = nil;
  55. return;
  56. end
  57.  
  58. if recurring == nil then
  59. recurring = false;
  60. elseif type( recurring ) ~= "boolean" then
  61. error( "Recurring must be a boolean value" );
  62. return;
  63. end
  64.  
  65. if type(action) ~= "function" and type(action) ~= "string" then
  66. error("Action must be a function or a string");
  67. return;
  68. end
  69.  
  70. timerevents[name] = {
  71. ["start"] = os.time(),
  72. ["action"] = action,
  73. ["recurring"] = recurring,
  74. ["interval"] = seconds,
  75. };
  76. end
  77.  
  78. MOD.SetTickEvent(Tick);
  79.  
  80. function MOD.GetStream(name)
  81.  
  82. local body, code, headers, status = MOD.HTTPSGet("https://api.twitch.tv/kraken/streams/"..name);
  83.  
  84. if body == nil then
  85. return nil,"not found";
  86. end
  87.  
  88. local raw = JSONDecode(body);
  89.  
  90. if raw == nil then
  91. return nil,"could not decode response";
  92. elseif raw.error ~= nil then
  93. return nil,tostring(raw.error);
  94. elseif type(raw.stream) ~= "table" then
  95. return nil,"offline";
  96. end
  97.  
  98. local ret = {};
  99. ret.viewers = raw.stream.viewers;
  100. ret.game = raw.stream.game;
  101. ret.name = raw.stream.channel.display_name;
  102. ret.partner = raw.stream.channel.partner;
  103. ret.views = raw.stream.channel.views;
  104. ret.language = raw.stream.channel.language;
  105. ret.mature = raw.stream.channel.mature;
  106. ret.status = raw.stream.channel.status;
  107. ret.started = raw.stream.created_at;
  108. ret.fps = raw.stream.average_fps;
  109. ret.followers = raw.stream.channel.followers;
  110.  
  111. return ret;
  112. end
Advertisement
Add Comment
Please, Sign In to add comment