sample.lua 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --[[
  2. willSendRequestToBbsCgi 関数
  3. 5ch/bbspinkのbbs.cgiにPOSTリクエストが送られる直前にproxy2chから呼び出される
  4. 関数です。引数requestと同じ構造のtable型の変数を返すことで、proxy2chがbbs.cgi
  5. に対して送るリクエストヘッダ/ボディを自由に改変 (ヘッダの追加/削除含む) する
  6. ことができます。--bbscgi-headerオプションとは異なり、板ごとに動作を変更する
  7. ことも可能です。スクリプトは毎回読み込まれるため、proxy2chを起動し直さなくて
  8. も変更は反映されます。
  9. * 引数 request
  10. 次のような構造を持つtable型の変数です。送信される予定のリクエストヘッダ/
  11. ボディが格納されています。
  12. {
  13. "body" = "リクエストボディ",
  14. "headers" = {
  15. "リクエストヘッダ1" = "値1",
  16. "リクエストヘッダ2" = "値2",
  17. :
  18. }
  19. }
  20. この引数をそのまま返せば「何もしない」関数になります。
  21. * 引数 host
  22. リクエスト先のホスト名が格納されているstring型の変数です。
  23. * 引数 board
  24. リクエストボディのbbsフィールドの値に相当するstring型の変数です。
  25. * 引数 thread
  26. リクエストボディのkeyフィールドの値に相当するstring型の変数です。
  27. * 戻り値
  28. 引数requestと同じ構造を持つtable型の変数を返してください。requestそのもの
  29. を改変してもいいですし、新しいtableを1から作ってもいいです。
  30. リクエストボディを改変する場合、application/x-www-form-urlencodedの形式を
  31. 満たしている必要があります。
  32. ]]
  33. function willSendRequestToBbsCgi(request, host, board, thread)
  34. --リクエストヘッダのUser-Agentの値を変更する
  35. request.headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0"
  36. --リクエストヘッダのRefererの値を変更する
  37. request.headers["Referer"] = "https://" .. host .. "/test/read.cgi/" .. board .. "/" .. thread .. "/l50"
  38. --リクエストボディの末尾に"&oekaki_thread1="を追加する
  39. request.body = request.body .. "&oekaki_thread1="
  40. return request
  41. end