main.c 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /* snac - A simple, minimalistic ActivityPub instance */
  2. /* copyright (c) 2022 grunfink - MIT license */
  3. #include "xs.h"
  4. #include "xs_encdec.h"
  5. #include "xs_json.h"
  6. #include "snac.h"
  7. int main(int argc, char *argv[])
  8. {
  9. snac snac;
  10. printf("%s\n", tid(0));
  11. srv_open("/home/angel/lib/snac/comam.es/");
  12. user_open(&snac, "mike");
  13. xs *headers = xs_dict_new();
  14. int status;
  15. d_char *payload;
  16. int p_size;
  17. xs *response;
  18. response = http_signed_request(&snac, "GET", "https://mastodon.social/users/VictorMoral",
  19. headers, NULL, 0, &status, &payload, &p_size);
  20. {
  21. xs *j1 = xs_json_dumps_pp(response, 4);
  22. printf("response:\n%s\n", j1);
  23. printf("payload:\n%s\n", payload);
  24. }
  25. {
  26. xs *list = queue(&snac);
  27. char *p, *fn;
  28. p = list;
  29. while (xs_list_iter(&p, &fn)) {
  30. xs *obj;
  31. obj = dequeue(&snac, fn);
  32. printf("%s\n", xs_dict_get(obj, "actor"));
  33. }
  34. }
  35. #if 0
  36. {
  37. xs *list = follower_list(&snac);
  38. char *p, *obj;
  39. p = list;
  40. while (xs_list_iter(&p, &obj)) {
  41. char *actor = xs_dict_get(obj, "actor");
  42. printf("%s\n", actor);
  43. }
  44. }
  45. {
  46. xs *list = timeline_list(&snac);
  47. char *p, *fn;
  48. p = list;
  49. while (xs_list_iter(&p, &fn)) {
  50. xs *tle = timeline_get(&snac, fn);
  51. printf("%s\n", xs_dict_get(tle, "id"));
  52. }
  53. }
  54. {
  55. xs *list = user_list();
  56. char *p, *uid;
  57. p = list;
  58. while (xs_list_iter(&p, &uid)) {
  59. if (user_open(&snac, uid)) {
  60. printf("%s (%s)\n", uid, xs_dict_get(snac.config, "name"));
  61. user_free(&snac);
  62. }
  63. }
  64. }
  65. #endif
  66. return 0;
  67. }