web_crawler.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. // web_crawler_e.h
  2. #ifndef WEB_CRAWLER_E
  3. #define WEB_CRAWLER_E
  4. #include <easy_flipper/easy_flipper.h>
  5. #include <flipper_http/flipper_http.h>
  6. #include "web_crawler_icons.h"
  7. #define TAG "Web Crawler"
  8. #define VERSION_TAG TAG " v1.0.1"
  9. extern char *http_method_names[];
  10. // Define the submenu items for our WebCrawler application
  11. typedef enum
  12. {
  13. WebCrawlerSubmenuIndexRun, // click to go to Run the GET request
  14. WebCrawlerSubmenuIndexAbout, // click to go to About screen
  15. WebCrawlerSubmenuIndexConfig, // click to go to Config submenu (Wifi, File)
  16. WebCrawlerSubmenuIndexRequest, // click to go to Request submenu (Set URL, HTTP Method, Headers)
  17. WebCrawlerSubmenuIndexWifi, // click to go to Wifi submenu (SSID, Password)
  18. WebCrawlerSubmenuIndexFile, // click to go to file submenu (Read, File Type, Rename, Delete)
  19. } WebCrawlerSubmenuIndex;
  20. typedef enum
  21. {
  22. WebCrawlerViewAbout, // About screen
  23. WebCrawlerViewSubmenuConfig, // Submenu Config view for App (Wifi, File)
  24. WebCrawlerViewVariableItemListRequest, // Submenu for URL (Set URL, HTTP Method, Headers)
  25. WebCrawlerViewVariableItemListWifi, // Wifi Configuration screen (Submenu for SSID, Password)
  26. WebCrawlerViewVariableItemListFile, // Submenu for File (Read, File Type, Rename, Delete)
  27. WebCrawlerViewSubmenuMain, // Submenu Main view for App (Run, About, Config)
  28. WebCrawlerViewTextInput, // Text input for Path
  29. WebCrawlerViewTextInputSSID, // Text input for SSID
  30. WebCrawlerViewTextInputPassword, // Text input for Password
  31. WebCrawlerViewFileRead, // File Read
  32. WebCrawlerViewTextInputFileType, // Text input for File Type
  33. WebCrawlerViewTextInputFileRename, // Text input for File Rename
  34. WebCrawlerViewTextInputHeaders, // Text input for Headers
  35. WebCrawlerViewTextInputPayload, // Text input for Payload
  36. WebCrawlerViewFileDelete, // File Delete
  37. //
  38. WebCrawlerViewWidgetResult, // The text box that displays the random fact
  39. WebCrawlerViewLoader, // The loader screen retrieves data from the internet
  40. //
  41. WebCrawlerViewWidget, // Generic widget view
  42. WebCrawlerViewVariableItemList, // Generic variable item list view
  43. WebCrawlerViewInput, // Generic text input view
  44. } WebCrawlerViewIndex;
  45. // Define the application structure
  46. typedef struct
  47. {
  48. ViewDispatcher *view_dispatcher;
  49. View *view_loader;
  50. Widget *widget_result; // The widget that displays the result
  51. Submenu *submenu_main;
  52. Submenu *submenu_config;
  53. Widget *widget;
  54. VariableItemList *variable_item_list;
  55. TextInput *uart_text_input;
  56. VariableItem *path_item;
  57. VariableItem *ssid_item;
  58. VariableItem *password_item;
  59. VariableItem *file_type_item;
  60. VariableItem *file_rename_item;
  61. VariableItem *file_read_item;
  62. VariableItem *file_delete_item;
  63. //
  64. VariableItem *http_method_item;
  65. VariableItem *headers_item;
  66. VariableItem *payload_item;
  67. char *path;
  68. char *ssid;
  69. char *password;
  70. char *file_type;
  71. char *file_rename;
  72. char *http_method;
  73. char *headers;
  74. char *payload;
  75. char *temp_buffer_path;
  76. uint32_t temp_buffer_size_path;
  77. char *temp_buffer_ssid;
  78. uint32_t temp_buffer_size_ssid;
  79. char *temp_buffer_password;
  80. uint32_t temp_buffer_size_password;
  81. char *temp_buffer_file_type;
  82. uint32_t temp_buffer_size_file_type;
  83. char *temp_buffer_file_rename;
  84. uint32_t temp_buffer_size_file_rename;
  85. char *temp_buffer_http_method;
  86. uint32_t temp_buffer_size_http_method;
  87. char *temp_buffer_headers;
  88. uint32_t temp_buffer_size_headers;
  89. char *temp_buffer_payload;
  90. uint32_t temp_buffer_size_payload;
  91. } WebCrawlerApp;
  92. /**
  93. * @brief Function to free the resources used by WebCrawlerApp.
  94. * @param app The WebCrawlerApp object to free.
  95. */
  96. void web_crawler_app_free(WebCrawlerApp *app);
  97. #endif // WEB_CRAWLER_E