2
0

chatactns.pas 1015 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. unit chatactns;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. BrookUtils, authactns, RUtils, SysUtils;
  6. type
  7. { TChatMsg }
  8. TChatMsg = class(TAuth)
  9. public
  10. procedure Get; override;
  11. end;
  12. { TChatGetMsg }
  13. TChatGetMsg = class(TChatMsg)
  14. public
  15. procedure Get; override;
  16. end;
  17. { TChatPostMsg }
  18. TChatPostMsg = class(TChatMsg)
  19. public
  20. procedure Post; override;
  21. end;
  22. implementation
  23. { TChatMsg }
  24. procedure TChatMsg.Get;
  25. begin
  26. Write(Log.Text);
  27. end;
  28. { TChatGetMsg }
  29. procedure TChatGetMsg.Get;
  30. begin
  31. Render('chat.html', [Session.Fields.Values['name'], Text]);
  32. end;
  33. { TChatPostMsg }
  34. procedure TChatPostMsg.Post;
  35. const
  36. MSG = '<div class="msgln">(%s) <b>%s</b>: %s<br></div>';
  37. begin
  38. Add(MSG, [FormatDateTime('yyyy-mm-dd', Now),
  39. StripHTMLMarkup(Session.Fields.Values['name']),
  40. StripHTMLMarkup(Fields.Values['text'])]);
  41. Save;
  42. end;
  43. initialization
  44. TChatMsg.Register('/msg', rmGet);
  45. TChatGetMsg.Register('/msg/get', rmGet);
  46. TChatPostMsg.Register('/msg/post', rmPost);
  47. end.