diff --git a/src/account.c b/src/account.c index 32a045d..564bfd2 100644 --- a/src/account.c +++ b/src/account.c @@ -31,13 +31,13 @@ #include "navigation.h" // Files -#include "../static/account.chtml" -#include "../static/account_info.chtml" -#include "../static/account_follow_btn.chtml" -#include "../static/favourites_page.chtml" -#include "../static/bookmarks_page.chtml" -#include "../static/account_stub.chtml" -#include "../static/account_sidebar.chtml" +#include "../static/account.ctmpl" +#include "../static/account_info.ctmpl" +#include "../static/account_follow_btn.ctmpl" +#include "../static/favourites_page.ctmpl" +#include "../static/bookmarks_page.ctmpl" +#include "../static/account_stub.ctmpl" +#include "../static/account_sidebar.ctmpl" #define FOLLOWS_YOU_HTML "%s" diff --git a/src/template/main.c b/src/template/main.c index 4aa76fc..9a1f61b 100644 --- a/src/template/main.c +++ b/src/template/main.c @@ -35,7 +35,8 @@ enum tmpl_type TMPL_INT, TMPL_UINT, TMPL_STR, - TMPL_STRLEN + TMPL_STRLEN, + TMPL_FLOAT, }; struct tmpl_token @@ -86,6 +87,8 @@ char* tkn_typetostr(enum tmpl_type tkn) return "char*"; case TMPL_UINT: return "unsigned"; + case TMPL_FLOAT: + return "float"; } return ""; } @@ -108,6 +111,9 @@ enum tmpl_type tkn_type(char* str) strcmp(str, "uint") == 0 || strcmp(str, "%u") == 0) return TMPL_UINT; + else if (strcmp(str, "float") == 0 || + strcmp(str, "%f") == 0) + return TMPL_FLOAT; // TODO Real error handling return TMPL_INT; @@ -186,6 +192,9 @@ void print_template(char* var, char* buf) case TMPL_UINT: chexput("%u", 2); break; + case TMPL_FLOAT: + chexput("%f", 2); + break; } } diff --git a/static/account.ctmpl b/static/account.ctmpl new file mode 100644 index 0000000..daf5186 --- /dev/null +++ b/static/account.ctmpl @@ -0,0 +1,41 @@ +#ifndef __account +#define __account +static const char data_account[] = {0X25,0X73,0XA,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X22,0X3E,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X2D,0X62,0X61,0X6E,0X6E,0X65,0X72,0X22,0X20,0X73,0X74,0X79,0X6C,0X65,0X3D,0X22,0X62,0X61,0X63,0X6B,0X67,0X72,0X6F,0X75,0X6E,0X64,0X2D,0X69,0X6D,0X61,0X67,0X65,0X3A,0X75,0X72,0X6C,0X28,0X27,0X25,0X73,0X27,0X29,0X3B,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X2D,0X69,0X6E,0X66,0X6F,0X2D,0X64,0X61,0X74,0X61,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X2D,0X64,0X69,0X73,0X70,0X6C,0X61,0X79,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X2D,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0XA,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6D,0X65,0X6E,0X75,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X20,0X75,0X73,0X65,0X72,0X2D,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X73,0X2D,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X4D,0X65,0X6E,0X75,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6D,0X65,0X6E,0X75,0X20,0X6D,0X65,0X6E,0X75,0X2D,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X6C,0X69,0X6E,0X6B,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X75,0X73,0X65,0X72,0X2F,0X25,0X73,0X2F,0X61,0X63,0X74,0X69,0X6F,0X6E,0X2F,0X25,0X73,0X73,0X75,0X62,0X73,0X63,0X72,0X69,0X62,0X65,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X6D,0X65,0X6E,0X75,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X6C,0X69,0X6E,0X6B,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X75,0X73,0X65,0X72,0X2F,0X25,0X73,0X2F,0X61,0X63,0X74,0X69,0X6F,0X6E,0X2F,0X25,0X73,0X62,0X6C,0X6F,0X63,0X6B,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X6D,0X65,0X6E,0X75,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X6C,0X69,0X6E,0X6B,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X75,0X73,0X65,0X72,0X2F,0X25,0X73,0X2F,0X61,0X63,0X74,0X69,0X6F,0X6E,0X2F,0X25,0X73,0X6D,0X75,0X74,0X65,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X6D,0X65,0X6E,0X75,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X2D,0X68,0X65,0X61,0X64,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X23,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X65,0X61,0X64,0X65,0X72,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X68,0X65,0X61,0X64,0X65,0X72,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0X25,0X64,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0XA,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X23,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X65,0X61,0X64,0X65,0X72,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X68,0X65,0X61,0X64,0X65,0X72,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0X25,0X64,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X61,0X3E,0XA,0XA,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X23,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X65,0X61,0X64,0X65,0X72,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X68,0X65,0X61,0X64,0X65,0X72,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0X25,0X64,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0XA,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X3C,0X69,0X6D,0X67,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X2D,0X70,0X66,0X70,0X22,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0XA,0X25,0X73,0XA,0XA,0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X73,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X40,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X65,0X73,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X40,0X25,0X73,0X2F,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X73,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X40,0X25,0X73,0X2F,0X6D,0X65,0X64,0X69,0X61,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X40,0X25,0X73,0X2F,0X70,0X69,0X6E,0X6E,0X65,0X64,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0XA,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct account_template {const char* is_blocked; +const char* header; +const char* follows_you; +const char* display_name; +const char* acct; +const char* prefix; +const char* userid; +const char* unsubscribe; +const char* subscribe_text; +const char* unblock; +const char* block_text; +const char* unmute; +const char* mute_text; +const char* tab_statuses_text; +int statuses_count; +const char* tab_following_count; +int following_count; +const char* tab_followers_count; +int followers_count; +const char* follow_btn; +const char* avatar; +const char* info; +const char* tab_statuses_focused; +const char* tab_scrobbles_focused; +const char* tab_scrobbles_text; +const char* tab_media_focused; +const char* tab_media_text; +const char* tab_pinned_focused; +const char* tab_pinned_text; +const char* acct_content; +}; +char* tmpl_gen_account(struct account_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_account, data->is_blocked?data->is_blocked:"", data->header?data->header:"", data->follows_you?data->follows_you:"", data->display_name?data->display_name:"", data->acct?data->acct:"", data->prefix?data->prefix:"", data->userid?data->userid:"", data->unsubscribe?data->unsubscribe:"", data->subscribe_text?data->subscribe_text:"", data->prefix?data->prefix:"", data->userid?data->userid:"", data->unblock?data->unblock:"", data->block_text?data->block_text:"", data->prefix?data->prefix:"", data->userid?data->userid:"", data->unmute?data->unmute:"", data->mute_text?data->mute_text:"", data->tab_statuses_text?data->tab_statuses_text:"", data->statuses_count, data->tab_following_count?data->tab_following_count:"", data->following_count, data->tab_followers_count?data->tab_followers_count:"", data->followers_count, data->follow_btn?data->follow_btn:"", data->avatar?data->avatar:"", data->info?data->info:"", data->prefix?data->prefix:"", data->acct?data->acct:"", data->tab_statuses_focused?data->tab_statuses_focused:"", data->tab_statuses_text?data->tab_statuses_text:"", data->prefix?data->prefix:"", data->acct?data->acct:"", data->tab_scrobbles_focused?data->tab_scrobbles_focused:"", data->tab_scrobbles_text?data->tab_scrobbles_text:"", data->prefix?data->prefix:"", data->acct?data->acct:"", data->tab_media_focused?data->tab_media_focused:"", data->tab_media_text?data->tab_media_text:"", data->prefix?data->prefix:"", data->acct?data->acct:"", data->tab_pinned_focused?data->tab_pinned_focused:"", data->tab_pinned_text?data->tab_pinned_text:"", data->acct_content?data->acct_content:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/account_follow_btn.ctmpl b/static/account_follow_btn.ctmpl new file mode 100644 index 0000000..50e8744 --- /dev/null +++ b/static/account_follow_btn.ctmpl @@ -0,0 +1,16 @@ +#ifndef __account_follow_btn +#define __account_follow_btn +static const char data_account_follow_btn[] = {0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X75,0X73,0X65,0X72,0X2F,0X25,0X73,0X2F,0X61,0X63,0X74,0X69,0X6F,0X6E,0X2F,0X25,0X73,0X66,0X6F,0X6C,0X6C,0X6F,0X77,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X6F,0X6C,0X6C,0X6F,0X77,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X61,0X3E,0}; +struct account_follow_btn_template {const char* prefix; +const char* userid; +const char* unfollow; +const char* active; +const char* follow_text; +}; +char* tmpl_gen_account_follow_btn(struct account_follow_btn_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_account_follow_btn, data->prefix?data->prefix:"", data->userid?data->userid:"", data->unfollow?data->unfollow:"", data->active?data->active:"", data->follow_text?data->follow_text:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/account_follow_btn.tmpl b/static/account_follow_btn.tmpl new file mode 100644 index 0000000..6157957 --- /dev/null +++ b/static/account_follow_btn.tmpl @@ -0,0 +1,3 @@ + + {{%s:follow_text}} + diff --git a/static/account_info.ctmpl b/static/account_info.ctmpl new file mode 100644 index 0000000..990185d --- /dev/null +++ b/static/account_info.ctmpl @@ -0,0 +1,12 @@ +#ifndef __account_info +#define __account_info +static const char data_account_info[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X3E,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X2D,0X6E,0X6F,0X74,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct account_info_template {const char* acct_note; +}; +char* tmpl_gen_account_info(struct account_info_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_account_info, data->acct_note?data->acct_note:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/account_info.tmpl b/static/account_info.tmpl new file mode 100644 index 0000000..e03edf7 --- /dev/null +++ b/static/account_info.tmpl @@ -0,0 +1,3 @@ +
+
{{%s:acct_note}}
+
diff --git a/static/account_sidebar.ctmpl b/static/account_sidebar.ctmpl new file mode 100644 index 0000000..1c9a8d2 --- /dev/null +++ b/static/account_sidebar.ctmpl @@ -0,0 +1,19 @@ +#ifndef __account_sidebar +#define __account_sidebar +static const char data_account_sidebar[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X2D,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X22,0X3E,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6D,0X67,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X2D,0X70,0X66,0X70,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X2D,0X73,0X74,0X61,0X74,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X65,0X61,0X64,0X65,0X72,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X68,0X65,0X61,0X64,0X65,0X72,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0X25,0X64,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X65,0X61,0X64,0X65,0X72,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X68,0X65,0X61,0X64,0X65,0X72,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0X25,0X64,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X65,0X61,0X64,0X65,0X72,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X68,0X65,0X61,0X64,0X65,0X72,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0X25,0X64,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0}; +struct account_sidebar_template {const char* avatar; +const char* username; +const char* statuses_text; +int statuses_count; +const char* following_text; +int following_count; +const char* followers_text; +int followers_count; +}; +char* tmpl_gen_account_sidebar(struct account_sidebar_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_account_sidebar, data->avatar?data->avatar:"", data->username?data->username:"", data->statuses_text?data->statuses_text:"", data->statuses_count, data->following_text?data->following_text:"", data->following_count, data->followers_text?data->followers_text:"", data->followers_count); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/account_stub.ctmpl b/static/account_stub.ctmpl new file mode 100644 index 0000000..ef01647 --- /dev/null +++ b/static/account_stub.ctmpl @@ -0,0 +1,16 @@ +#ifndef __account_stub +#define __account_stub +static const char data_account_stub[] = {0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X2D,0X73,0X74,0X75,0X62,0X22,0X3E,0XA,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X66,0X70,0X2D,0X74,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X40,0X25,0X73,0X22,0X3E,0X3C,0X69,0X6D,0X67,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X2D,0X73,0X74,0X75,0X62,0X2D,0X69,0X6E,0X66,0X6F,0X2D,0X77,0X72,0X61,0X70,0X70,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X2D,0X73,0X74,0X75,0X62,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X40,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X2D,0X73,0X74,0X75,0X62,0X2D,0X74,0X6F,0X70,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X2D,0X73,0X74,0X75,0X62,0X2D,0X62,0X6F,0X74,0X74,0X6F,0X6D,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X3E,0X40,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0}; +struct account_stub_template {const char* prefix; +const char* acct; +const char* avatar; +const char* display_name; +const char* full_acct; +}; +char* tmpl_gen_account_stub(struct account_stub_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_account_stub, data->prefix?data->prefix:"", data->acct?data->acct:"", data->avatar?data->avatar:"", data->prefix?data->prefix:"", data->acct?data->acct:"", data->display_name?data->display_name:"", data->full_acct?data->full_acct:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/account_stub.tmpl b/static/account_stub.tmpl new file mode 100644 index 0000000..6ac97d0 --- /dev/null +++ b/static/account_stub.tmpl @@ -0,0 +1,19 @@ + + + + + +
+ +
diff --git a/static/attachment_audio.ctmpl b/static/attachment_audio.ctmpl new file mode 100644 index 0000000..c6a3a7c --- /dev/null +++ b/static/attachment_audio.ctmpl @@ -0,0 +1,13 @@ +#ifndef __attachment_audio +#define __attachment_audio +static const char data_attachment_audio[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X20,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X61,0X75,0X64,0X69,0X6F,0X22,0X3E,0XA,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X48,0X65,0X72,0X65,0X20,0X65,0X76,0X65,0X6E,0X20,0X69,0X66,0X20,0X6E,0X6F,0X74,0X20,0X73,0X65,0X6E,0X73,0X69,0X74,0X69,0X76,0X65,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X65,0X6E,0X73,0X69,0X74,0X69,0X76,0X65,0X2D,0X70,0X6C,0X61,0X63,0X65,0X68,0X6F,0X6C,0X64,0X65,0X72,0X20,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X3C,0X61,0X75,0X64,0X69,0X6F,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X35,0X36,0X22,0X20,0X63,0X6F,0X6E,0X74,0X72,0X6F,0X6C,0X73,0X20,0X70,0X72,0X65,0X6C,0X6F,0X61,0X64,0X3D,0X22,0X6D,0X65,0X74,0X61,0X64,0X61,0X74,0X61,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X73,0X6F,0X75,0X72,0X63,0X65,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X76,0X69,0X64,0X65,0X6F,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct attachment_audio_template {const char* sensitive; +const char* src; +}; +char* tmpl_gen_attachment_audio(struct attachment_audio_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_attachment_audio, data->sensitive?data->sensitive:"", data->src?data->src:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/attachment_gifv.ctmpl b/static/attachment_gifv.ctmpl new file mode 100644 index 0000000..32413c7 --- /dev/null +++ b/static/attachment_gifv.ctmpl @@ -0,0 +1,13 @@ +#ifndef __attachment_gifv +#define __attachment_gifv +static const char data_attachment_gifv[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X20,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X67,0X69,0X66,0X76,0X22,0X3E,0XA,0X20,0X20,0X3C,0X76,0X69,0X64,0X65,0X6F,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X35,0X36,0X22,0X20,0X61,0X75,0X74,0X6F,0X70,0X6C,0X61,0X79,0X20,0X6D,0X75,0X74,0X65,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X73,0X6F,0X75,0X72,0X63,0X65,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X5B,0X20,0X47,0X49,0X46,0X56,0X20,0X5D,0XA,0X20,0X20,0X3C,0X2F,0X76,0X69,0X64,0X65,0X6F,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct attachment_gifv_template {const char* src; +const char* sensitive; +}; +char* tmpl_gen_attachment_gifv(struct attachment_gifv_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_attachment_gifv, data->src?data->src:"", data->sensitive?data->sensitive:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/attachment_image.ctmpl b/static/attachment_image.ctmpl new file mode 100644 index 0000000..f639ff5 --- /dev/null +++ b/static/attachment_image.ctmpl @@ -0,0 +1,13 @@ +#ifndef __attachment_image +#define __attachment_image +static const char data_attachment_image[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X20,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X69,0X6D,0X67,0X22,0X3E,0XA,0X20,0X20,0X3C,0X69,0X6D,0X67,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X35,0X36,0X22,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct attachment_image_template {const char* src; +const char* sensitive; +}; +char* tmpl_gen_attachment_image(struct attachment_image_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_attachment_image, data->src?data->src:"", data->sensitive?data->sensitive:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/attachment_link.ctmpl b/static/attachment_link.ctmpl new file mode 100644 index 0000000..bd785e9 --- /dev/null +++ b/static/attachment_link.ctmpl @@ -0,0 +1,13 @@ +#ifndef __attachment_link +#define __attachment_link +static const char data_attachment_link[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X20,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X6C,0X69,0X6E,0X6B,0X20,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X22,0X3E,0X41,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X3C,0X2F,0X61,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct attachment_link_template {const char* sensitive; +const char* url; +}; +char* tmpl_gen_attachment_link(struct attachment_link_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_attachment_link, data->sensitive?data->sensitive:"", data->url?data->url:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/attachment_video.ctmpl b/static/attachment_video.ctmpl new file mode 100644 index 0000000..4d7d487 --- /dev/null +++ b/static/attachment_video.ctmpl @@ -0,0 +1,13 @@ +#ifndef __attachment_video +#define __attachment_video +static const char data_attachment_video[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X20,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X2D,0X76,0X69,0X64,0X65,0X6F,0X22,0X3E,0XA,0X20,0X20,0X3C,0X76,0X69,0X64,0X65,0X6F,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X35,0X36,0X22,0X20,0X63,0X6F,0X6E,0X74,0X72,0X6F,0X6C,0X73,0X20,0X70,0X72,0X65,0X6C,0X6F,0X61,0X64,0X3D,0X22,0X6D,0X65,0X74,0X61,0X64,0X61,0X74,0X61,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X73,0X6F,0X75,0X72,0X63,0X65,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X5B,0X20,0X56,0X49,0X44,0X45,0X4F,0X20,0X5D,0XA,0X20,0X20,0X3C,0X2F,0X76,0X69,0X64,0X65,0X6F,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct attachment_video_template {const char* src; +const char* sensitive; +}; +char* tmpl_gen_attachment_video(struct attachment_video_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_attachment_video, data->src?data->src:"", data->sensitive?data->sensitive:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/attachments.ctmpl b/static/attachments.ctmpl new file mode 100644 index 0000000..3079a7c --- /dev/null +++ b/static/attachments.ctmpl @@ -0,0 +1,12 @@ +#ifndef __attachments +#define __attachments +static const char data_attachments[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X73,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct attachments_template {const char* attachments; +}; +char* tmpl_gen_attachments(struct attachments_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_attachments, data->attachments?data->attachments:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/attachments.tmpl b/static/attachments.tmpl new file mode 100644 index 0000000..9879028 --- /dev/null +++ b/static/attachments.tmpl @@ -0,0 +1,3 @@ +
+ {{%s:attachments}} +
diff --git a/static/bar.ctmpl b/static/bar.ctmpl new file mode 100644 index 0000000..dcd5e3b --- /dev/null +++ b/static/bar.ctmpl @@ -0,0 +1,12 @@ +#ifndef __bar +#define __bar +static const char data_bar[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X61,0X72,0X22,0X3E,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X73,0X74,0X79,0X6C,0X65,0X3D,0X22,0X6D,0X61,0X78,0X2D,0X68,0X65,0X69,0X67,0X68,0X74,0X3A,0X20,0X25,0X66,0X25,0X25,0X3B,0X22,0X3E,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct bar_template {float value; +}; +char* tmpl_gen_bar(struct bar_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_bar, data->value); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/bar.tmpl b/static/bar.tmpl new file mode 100644 index 0000000..c3eceda --- /dev/null +++ b/static/bar.tmpl @@ -0,0 +1,3 @@ +
+
+
diff --git a/static/bar_graph.ctmpl b/static/bar_graph.ctmpl new file mode 100644 index 0000000..b9ac1a4 --- /dev/null +++ b/static/bar_graph.ctmpl @@ -0,0 +1,12 @@ +#ifndef __bar_graph +#define __bar_graph +static const char data_bar_graph[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X61,0X72,0X2D,0X67,0X72,0X61,0X70,0X68,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct bar_graph_template {const char* graph; +}; +char* tmpl_gen_bar_graph(struct bar_graph_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_bar_graph, data->graph?data->graph:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/bar_graph.tmpl b/static/bar_graph.tmpl new file mode 100644 index 0000000..83cd3f6 --- /dev/null +++ b/static/bar_graph.tmpl @@ -0,0 +1,3 @@ +
+ {{%s:graph}} +
diff --git a/static/bookmarks_page.ctmpl b/static/bookmarks_page.ctmpl new file mode 100644 index 0000000..ecdd572 --- /dev/null +++ b/static/bookmarks_page.ctmpl @@ -0,0 +1,13 @@ +#ifndef __bookmarks_page +#define __bookmarks_page +static const char data_bookmarks_page[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X6D,0X70,0X6C,0X65,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X68,0X31,0X3E,0X42,0X6F,0X6F,0X6B,0X6D,0X61,0X72,0X6B,0X73,0X3C,0X2F,0X68,0X31,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X6F,0X6F,0X6B,0X6D,0X61,0X72,0X6B,0X73,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X25,0X73,0}; +struct bookmarks_page_template {const char* statuses; +const char* navigation; +}; +char* tmpl_gen_bookmarks_page(struct bookmarks_page_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_bookmarks_page, data->statuses?data->statuses:"", data->navigation?data->navigation:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/bookmarks_page.tmpl b/static/bookmarks_page.tmpl new file mode 100644 index 0000000..0e34b35 --- /dev/null +++ b/static/bookmarks_page.tmpl @@ -0,0 +1,7 @@ +
+

Bookmarks

+
+
+ {{%s:statuses}} +
+{{%s:navigation}} diff --git a/static/config_appearance.ctmpl b/static/config_appearance.ctmpl new file mode 100644 index 0000000..0d0eccd --- /dev/null +++ b/static/config_appearance.ctmpl @@ -0,0 +1,5 @@ +#ifndef __config_appearance +#define __config_appearance +static const char data_config_appearance[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X6D,0X70,0X6C,0X65,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X61,0X70,0X70,0X65,0X61,0X72,0X61,0X6E,0X63,0X65,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X20,0X65,0X6E,0X63,0X74,0X79,0X70,0X65,0X3D,0X22,0X6D,0X75,0X6C,0X74,0X69,0X70,0X61,0X72,0X74,0X2F,0X66,0X6F,0X72,0X6D,0X2D,0X64,0X61,0X74,0X61,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X4C,0X65,0X74,0X73,0X20,0X73,0X65,0X72,0X76,0X65,0X72,0X20,0X6B,0X6E,0X6F,0X77,0X20,0X77,0X65,0X20,0X73,0X65,0X6E,0X74,0X20,0X69,0X74,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X65,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X68,0X31,0X3E,0X41,0X70,0X70,0X65,0X61,0X72,0X61,0X6E,0X63,0X65,0X3C,0X2F,0X68,0X31,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X73,0X69,0X6E,0X67,0X6C,0X65,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X53,0X61,0X76,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X68,0X33,0X3E,0X54,0X68,0X65,0X6D,0X65,0X20,0X76,0X61,0X72,0X69,0X61,0X6E,0X74,0X3C,0X2F,0X68,0X33,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X74,0X68,0X65,0X6D,0X65,0X76,0X61,0X72,0X22,0X3E,0X54,0X68,0X65,0X6D,0X65,0X20,0X76,0X61,0X72,0X69,0X61,0X6E,0X74,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X65,0X6C,0X65,0X63,0X74,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X74,0X68,0X65,0X6D,0X65,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X74,0X68,0X65,0X6D,0X65,0X76,0X61,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X74,0X72,0X65,0X65,0X62,0X69,0X72,0X64,0X32,0X30,0X22,0X20,0X74,0X69,0X74,0X6C,0X65,0X3D,0X22,0X43,0X72,0X65,0X61,0X74,0X65,0X64,0X20,0X62,0X79,0X20,0X6E,0X65,0X6B,0X6F,0X62,0X69,0X74,0X20,0X28,0X40,0X6E,0X65,0X6B,0X6F,0X40,0X72,0X64,0X72,0X61,0X6D,0X61,0X2E,0X63,0X63,0X29,0X20,0X7C,0X20,0X44,0X61,0X72,0X6B,0X20,0X76,0X61,0X72,0X69,0X61,0X6E,0X74,0X20,0X63,0X72,0X65,0X61,0X74,0X65,0X64,0X20,0X62,0X79,0X20,0X47,0X72,0X75,0X6D,0X62,0X75,0X6C,0X6F,0X6E,0X20,0X28,0X40,0X67,0X72,0X75,0X6D,0X62,0X75,0X6C,0X6F,0X6E,0X40,0X66,0X72,0X65,0X65,0X63,0X75,0X6D,0X65,0X78,0X74,0X72,0X65,0X6D,0X69,0X73,0X74,0X2E,0X63,0X6F,0X6D,0X29,0X22,0X3E,0X74,0X72,0X65,0X65,0X62,0X69,0X72,0X64,0X20,0X32,0X2E,0X30,0X20,0X2D,0X20,0X44,0X65,0X66,0X61,0X75,0X6C,0X74,0X2C,0X20,0X73,0X69,0X6D,0X70,0X6C,0X65,0X20,0X74,0X68,0X65,0X6D,0X65,0X3C,0X2F,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X73,0X6F,0X6C,0X61,0X72,0X69,0X7A,0X65,0X64,0X22,0X20,0X74,0X69,0X74,0X6C,0X65,0X3D,0X22,0X43,0X72,0X65,0X61,0X74,0X65,0X64,0X20,0X62,0X79,0X20,0X63,0X6F,0X79,0X6F,0X74,0X65,0X20,0X28,0X40,0X63,0X6F,0X79,0X6F,0X74,0X65,0X40,0X70,0X6C,0X2E,0X6C,0X61,0X69,0X6E,0X2E,0X73,0X68,0X29,0X22,0X3E,0X53,0X6F,0X6C,0X61,0X72,0X69,0X7A,0X65,0X64,0X20,0X2D,0X20,0X53,0X6F,0X6C,0X61,0X72,0X69,0X7A,0X65,0X64,0X20,0X63,0X6F,0X6C,0X6F,0X72,0X73,0X20,0X66,0X6F,0X72,0X20,0X70,0X6C,0X65,0X61,0X73,0X61,0X6E,0X74,0X20,0X76,0X69,0X65,0X77,0X69,0X6E,0X67,0X3C,0X2F,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X65,0X6C,0X65,0X63,0X74,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X68,0X33,0X3E,0X43,0X6F,0X6C,0X6F,0X72,0X20,0X53,0X63,0X68,0X65,0X6D,0X65,0X3C,0X2F,0X68,0X33,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X72,0X61,0X64,0X69,0X6F,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X6C,0X69,0X67,0X68,0X74,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X74,0X68,0X65,0X6D,0X65,0X63,0X6C,0X72,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X30,0X22,0X20,0X63,0X68,0X65,0X63,0X6B,0X65,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X6C,0X69,0X67,0X68,0X74,0X22,0X3E,0X4C,0X69,0X67,0X68,0X74,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X72,0X61,0X64,0X69,0X6F,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X64,0X61,0X72,0X6B,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X74,0X68,0X65,0X6D,0X65,0X63,0X6C,0X72,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X64,0X61,0X72,0X6B,0X22,0X3E,0X44,0X61,0X72,0X6B,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X68,0X33,0X3E,0X42,0X61,0X63,0X6B,0X67,0X72,0X6F,0X75,0X6E,0X64,0X3C,0X2F,0X68,0X33,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X66,0X69,0X6C,0X65,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X66,0X69,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X73,0X69,0X6E,0X67,0X6C,0X65,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X53,0X61,0X76,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; + +#endif diff --git a/static/config_general.ctmpl b/static/config_general.ctmpl new file mode 100644 index 0000000..221fa5e --- /dev/null +++ b/static/config_general.ctmpl @@ -0,0 +1,24 @@ +#ifndef __config_general +#define __config_general +static const char data_config_general[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X6D,0X70,0X6C,0X65,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X67,0X65,0X6E,0X65,0X72,0X61,0X6C,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X4C,0X65,0X74,0X73,0X20,0X73,0X65,0X72,0X76,0X65,0X72,0X20,0X6B,0X6E,0X6F,0X77,0X20,0X77,0X65,0X20,0X73,0X65,0X6E,0X74,0X20,0X69,0X74,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X65,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X68,0X31,0X3E,0X47,0X65,0X6E,0X65,0X72,0X61,0X6C,0X3C,0X2F,0X68,0X31,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X73,0X69,0X6E,0X67,0X6C,0X65,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X53,0X61,0X76,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X68,0X33,0X3E,0X4A,0X61,0X76,0X61,0X53,0X63,0X72,0X69,0X70,0X74,0X3C,0X2F,0X68,0X33,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X6A,0X73,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X6A,0X73,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X6A,0X73,0X22,0X3E,0X45,0X6E,0X61,0X62,0X6C,0X65,0X20,0X4A,0X61,0X76,0X61,0X53,0X63,0X72,0X69,0X70,0X74,0X20,0X2D,0X20,0X49,0X66,0X20,0X64,0X69,0X73,0X61,0X62,0X6C,0X65,0X64,0X2C,0X20,0X6F,0X76,0X65,0X72,0X72,0X69,0X64,0X65,0X73,0X20,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X73,0X20,0X62,0X65,0X6C,0X6F,0X77,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X6A,0X73,0X61,0X63,0X74,0X69,0X6F,0X6E,0X73,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X6A,0X73,0X61,0X63,0X74,0X69,0X6F,0X6E,0X73,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X6A,0X73,0X61,0X63,0X74,0X69,0X6F,0X6E,0X73,0X22,0X3E,0X51,0X75,0X69,0X63,0X6B,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X73,0X20,0X2D,0X20,0X4C,0X69,0X6B,0X65,0X73,0X2C,0X20,0X42,0X6F,0X6F,0X73,0X74,0X73,0X2C,0X20,0X65,0X74,0X63,0X20,0X64,0X6F,0X6E,0X65,0X20,0X69,0X6E,0X20,0X62,0X61,0X63,0X6B,0X67,0X72,0X6F,0X75,0X6E,0X64,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X6A,0X73,0X72,0X65,0X70,0X6C,0X79,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X6A,0X73,0X72,0X65,0X70,0X6C,0X79,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X6A,0X73,0X72,0X65,0X70,0X6C,0X79,0X22,0X3E,0X51,0X75,0X69,0X63,0X6B,0X20,0X72,0X65,0X70,0X6C,0X79,0X20,0X2D,0X20,0X52,0X65,0X70,0X6C,0X69,0X65,0X73,0X20,0X64,0X6F,0X6E,0X27,0X74,0X20,0X72,0X65,0X71,0X75,0X69,0X72,0X65,0X20,0X72,0X65,0X64,0X69,0X72,0X65,0X63,0X74,0X73,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X6A,0X73,0X6C,0X69,0X76,0X65,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X6A,0X73,0X6C,0X69,0X76,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X6A,0X73,0X6C,0X69,0X76,0X65,0X22,0X3E,0X4C,0X69,0X76,0X65,0X20,0X75,0X70,0X64,0X61,0X74,0X65,0X20,0X2D,0X20,0X53,0X74,0X61,0X74,0X75,0X73,0X65,0X73,0X2C,0X20,0X63,0X68,0X61,0X74,0X73,0X2C,0X20,0X61,0X6E,0X64,0X20,0X72,0X65,0X61,0X63,0X74,0X69,0X6F,0X6E,0X73,0X20,0X66,0X65,0X74,0X63,0X68,0X20,0X6F,0X6E,0X20,0X74,0X68,0X65,0X20,0X66,0X6C,0X79,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0XA,0X20,0X20,0X20,0X20,0X3C,0X68,0X33,0X3E,0X53,0X74,0X61,0X74,0X75,0X73,0X65,0X73,0X3C,0X2F,0X68,0X33,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X73,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X74,0X61,0X74,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X73,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X73,0X22,0X3E,0X53,0X68,0X6F,0X77,0X20,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X73,0X20,0X2D,0X20,0X49,0X66,0X20,0X64,0X69,0X73,0X61,0X62,0X6C,0X65,0X64,0X2C,0X20,0X61,0X74,0X74,0X61,0X63,0X68,0X6D,0X65,0X6E,0X74,0X73,0X20,0X61,0X72,0X65,0X20,0X6C,0X69,0X6E,0X6B,0X73,0X20,0X69,0X6E,0X73,0X74,0X65,0X61,0X64,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X67,0X72,0X65,0X65,0X6E,0X74,0X65,0X78,0X74,0X73,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X74,0X61,0X74,0X67,0X72,0X65,0X65,0X6E,0X74,0X65,0X78,0X74,0X73,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X67,0X72,0X65,0X65,0X6E,0X74,0X65,0X78,0X74,0X73,0X22,0X3E,0X53,0X68,0X6F,0X77,0X20,0X67,0X72,0X65,0X65,0X6E,0X74,0X65,0X78,0X74,0X73,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X64,0X6F,0X70,0X65,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X74,0X61,0X74,0X64,0X6F,0X70,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X64,0X6F,0X70,0X65,0X22,0X3E,0X53,0X68,0X6F,0X77,0X20,0X64,0X6F,0X70,0X61,0X6D,0X65,0X6D,0X65,0X20,0X6E,0X75,0X6D,0X62,0X65,0X72,0X73,0X20,0X2D,0X20,0X4C,0X69,0X6B,0X65,0X73,0X2C,0X20,0X63,0X6F,0X6D,0X6D,0X65,0X6E,0X74,0X73,0X2C,0X20,0X61,0X6E,0X64,0X20,0X62,0X6F,0X6F,0X73,0X74,0X20,0X63,0X6F,0X75,0X6E,0X74,0X73,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X6F,0X6E,0X65,0X63,0X6C,0X69,0X63,0X6B,0X73,0X6F,0X66,0X74,0X77,0X61,0X72,0X65,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X74,0X61,0X74,0X6F,0X6E,0X65,0X63,0X6C,0X69,0X63,0X6B,0X73,0X6F,0X66,0X74,0X77,0X61,0X72,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X6F,0X6E,0X65,0X63,0X6C,0X69,0X63,0X6B,0X73,0X6F,0X66,0X74,0X77,0X61,0X72,0X65,0X22,0X3E,0X53,0X68,0X6F,0X77,0X20,0X4C,0X69,0X6B,0X65,0X2D,0X42,0X6F,0X6F,0X73,0X74,0X20,0X62,0X75,0X74,0X74,0X6F,0X6E,0X20,0X2D,0X20,0X53,0X68,0X6F,0X77,0X20,0X61,0X20,0X62,0X75,0X74,0X74,0X6F,0X6E,0X20,0X69,0X6E,0X20,0X74,0X68,0X65,0X20,0X73,0X74,0X61,0X74,0X75,0X73,0X20,0X77,0X68,0X69,0X63,0X68,0X20,0X6C,0X69,0X6B,0X65,0X73,0X20,0X61,0X6E,0X64,0X20,0X62,0X6F,0X6F,0X73,0X74,0X73,0X20,0X61,0X20,0X70,0X6F,0X73,0X74,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X65,0X6D,0X6F,0X6A,0X6F,0X6C,0X69,0X6B,0X65,0X73,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X74,0X61,0X74,0X65,0X6D,0X6F,0X6A,0X6F,0X6C,0X69,0X6B,0X65,0X73,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X65,0X6D,0X6F,0X6A,0X6F,0X6C,0X69,0X6B,0X65,0X73,0X22,0X3E,0X43,0X6F,0X6E,0X76,0X65,0X72,0X74,0X20,0X45,0X6D,0X6F,0X6A,0X69,0X20,0X72,0X65,0X61,0X63,0X74,0X73,0X20,0X74,0X6F,0X20,0X6C,0X69,0X6B,0X65,0X73,0X20,0X2D,0X20,0X41,0X6C,0X73,0X6F,0X20,0X64,0X69,0X73,0X61,0X62,0X6C,0X65,0X73,0X20,0X74,0X68,0X65,0X20,0X65,0X6D,0X6F,0X6A,0X69,0X20,0X72,0X65,0X61,0X63,0X74,0X69,0X6F,0X6E,0X20,0X62,0X75,0X74,0X74,0X6F,0X6E,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X68,0X69,0X64,0X65,0X6D,0X75,0X74,0X65,0X64,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X74,0X61,0X74,0X68,0X69,0X64,0X65,0X6D,0X75,0X74,0X65,0X64,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X73,0X74,0X61,0X74,0X68,0X69,0X64,0X65,0X6D,0X75,0X74,0X65,0X64,0X22,0X3E,0X48,0X69,0X64,0X65,0X20,0X73,0X74,0X61,0X74,0X75,0X73,0X65,0X73,0X20,0X66,0X72,0X6F,0X6D,0X20,0X6D,0X75,0X74,0X65,0X64,0X20,0X75,0X73,0X65,0X72,0X73,0X20,0X61,0X6E,0X64,0X20,0X74,0X68,0X72,0X65,0X61,0X64,0X73,0X20,0X2D,0X20,0X49,0X66,0X20,0X64,0X69,0X73,0X61,0X62,0X6C,0X65,0X64,0X2C,0X20,0X73,0X74,0X61,0X74,0X75,0X73,0X65,0X73,0X20,0X77,0X69,0X6C,0X6C,0X20,0X61,0X70,0X70,0X65,0X61,0X72,0X20,0X63,0X6F,0X6C,0X6C,0X61,0X70,0X73,0X65,0X64,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0XA,0X20,0X20,0X20,0X20,0X3C,0X68,0X33,0X3E,0X49,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X3C,0X2F,0X68,0X33,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X73,0X68,0X6F,0X77,0X73,0X68,0X6F,0X75,0X74,0X62,0X6F,0X78,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X73,0X68,0X6F,0X77,0X73,0X68,0X6F,0X75,0X74,0X62,0X6F,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X73,0X68,0X6F,0X77,0X73,0X68,0X6F,0X75,0X74,0X62,0X6F,0X78,0X22,0X3E,0X53,0X68,0X6F,0X77,0X20,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X20,0X73,0X68,0X6F,0X75,0X74,0X62,0X6F,0X78,0X20,0X28,0X4A,0X53,0X20,0X72,0X65,0X71,0X75,0X69,0X72,0X65,0X64,0X29,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X70,0X61,0X6E,0X65,0X6C,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X70,0X61,0X6E,0X65,0X6C,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X70,0X61,0X6E,0X65,0X6C,0X22,0X3E,0X53,0X68,0X6F,0X77,0X20,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X20,0X70,0X61,0X6E,0X65,0X6C,0X20,0X2D,0X20,0X3C,0X65,0X6D,0X3E,0X41,0X64,0X6D,0X69,0X6E,0X73,0X20,0X73,0X68,0X6F,0X75,0X6C,0X64,0X20,0X3C,0X73,0X74,0X72,0X6F,0X6E,0X67,0X3E,0X6E,0X6F,0X74,0X3C,0X2F,0X73,0X74,0X72,0X6F,0X6E,0X67,0X3E,0X20,0X75,0X73,0X65,0X20,0X74,0X68,0X65,0X20,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X20,0X70,0X61,0X6E,0X65,0X6C,0X20,0X66,0X6F,0X72,0X20,0X6D,0X61,0X6A,0X6F,0X72,0X20,0X61,0X6E,0X6E,0X6F,0X75,0X6E,0X63,0X65,0X6D,0X65,0X6E,0X74,0X73,0X3C,0X2F,0X65,0X6D,0X3E,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0XA,0X20,0X20,0X20,0X20,0X3C,0X68,0X33,0X3E,0X4E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X73,0X3C,0X2F,0X68,0X33,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X63,0X68,0X65,0X63,0X6B,0X62,0X6F,0X78,0X22,0X20,0X69,0X64,0X3D,0X22,0X63,0X66,0X67,0X6E,0X6F,0X74,0X69,0X66,0X65,0X6D,0X62,0X65,0X64,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X65,0X6D,0X62,0X65,0X64,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X31,0X22,0X20,0X25,0X73,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X63,0X66,0X67,0X6E,0X6F,0X74,0X69,0X66,0X65,0X6D,0X62,0X65,0X64,0X22,0X3E,0X44,0X69,0X73,0X70,0X6C,0X61,0X79,0X20,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X73,0X20,0X69,0X6E,0X20,0X69,0X46,0X72,0X61,0X6D,0X65,0X20,0X2D,0X20,0X69,0X46,0X72,0X61,0X6D,0X65,0X73,0X20,0X73,0X65,0X70,0X61,0X72,0X61,0X74,0X65,0X20,0X6C,0X6F,0X61,0X64,0X69,0X6E,0X67,0X20,0X66,0X72,0X6F,0X6D,0X20,0X74,0X68,0X65,0X20,0X6D,0X61,0X69,0X6E,0X20,0X70,0X61,0X67,0X65,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X73,0X69,0X6E,0X67,0X6C,0X65,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X53,0X61,0X76,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct config_general_template {const char* js_on; +const char* jsactions_on; +const char* jsreply_on; +const char* jslive_on; +const char* status_attachments_on; +const char* status_greentexts_on; +const char* status_dopameme_on; +const char* status_oneclicksoftware_on; +const char* status_emojo_likes_on; +const char* status_hide_muted_on; +const char* instance_show_shoutbox_on; +const char* instance_panel_on; +const char* notifications_embed_on; +}; +char* tmpl_gen_config_general(struct config_general_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_config_general, data->js_on?data->js_on:"", data->jsactions_on?data->jsactions_on:"", data->jsreply_on?data->jsreply_on:"", data->jslive_on?data->jslive_on:"", data->status_attachments_on?data->status_attachments_on:"", data->status_greentexts_on?data->status_greentexts_on:"", data->status_dopameme_on?data->status_dopameme_on:"", data->status_oneclicksoftware_on?data->status_oneclicksoftware_on:"", data->status_emojo_likes_on?data->status_emojo_likes_on:"", data->status_hide_muted_on?data->status_hide_muted_on:"", data->instance_show_shoutbox_on?data->instance_show_shoutbox_on:"", data->instance_panel_on?data->instance_panel_on:"", data->notifications_embed_on?data->notifications_embed_on:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/config_sidebar.ctmpl b/static/config_sidebar.ctmpl new file mode 100644 index 0000000..305b8cb --- /dev/null +++ b/static/config_sidebar.ctmpl @@ -0,0 +1,17 @@ +#ifndef __config_sidebar +#define __config_sidebar +static const char data_config_sidebar[] = {0X3C,0X75,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X2D,0X63,0X6F,0X6E,0X66,0X69,0X67,0X22,0X3E,0XA,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X2D,0X73,0X75,0X62,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X63,0X6F,0X6E,0X66,0X69,0X67,0X2F,0X67,0X65,0X6E,0X65,0X72,0X61,0X6C,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X2D,0X73,0X75,0X62,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X63,0X6F,0X6E,0X66,0X69,0X67,0X2F,0X61,0X70,0X70,0X65,0X61,0X72,0X61,0X6E,0X63,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X2D,0X73,0X75,0X62,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X63,0X6F,0X6E,0X66,0X69,0X67,0X2F,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X3C,0X2F,0X75,0X6C,0X3E,0}; +struct config_sidebar_template {const char* general_active; +const char* general; +const char* appearance_active; +const char* appearance; +const char* account_active; +const char* account; +}; +char* tmpl_gen_config_sidebar(struct config_sidebar_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_config_sidebar, data->general_active?data->general_active:"", data->general?data->general:"", data->appearance_active?data->appearance_active:"", data->appearance?data->appearance:"", data->account_active?data->account_active:"", data->account?data->account:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/config_sidebar.tmpl b/static/config_sidebar.tmpl new file mode 100644 index 0000000..51e3646 --- /dev/null +++ b/static/config_sidebar.tmpl @@ -0,0 +1,5 @@ + diff --git a/static/emoji.ctmpl b/static/emoji.ctmpl new file mode 100644 index 0000000..5375431 --- /dev/null +++ b/static/emoji.ctmpl @@ -0,0 +1,13 @@ +#ifndef __emoji +#define __emoji +static const char data_emoji[] = {0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X2F,0X72,0X65,0X61,0X63,0X74,0X2F,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X69,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0}; +struct emoji_template {const char* status_id; +const char* emoji; +}; +char* tmpl_gen_emoji(struct emoji_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_emoji, data->status_id?data->status_id:"", data->emoji?data->emoji:"", data->emoji?data->emoji:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/emoji.tmpl b/static/emoji.tmpl new file mode 100644 index 0000000..67b6917 --- /dev/null +++ b/static/emoji.tmpl @@ -0,0 +1 @@ +{{%s:emoji}} diff --git a/static/emoji_picker.ctmpl b/static/emoji_picker.ctmpl new file mode 100644 index 0000000..0b3ebbd --- /dev/null +++ b/static/emoji_picker.ctmpl @@ -0,0 +1,31 @@ +#ifndef __emoji_picker +#define __emoji_picker +static const char data_emoji_picker[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X69,0X2D,0X70,0X69,0X63,0X6B,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X73,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X30,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X61,0X6C,0X74,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0XF0,0X9F,0X98,0X83,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X61,0X6C,0X74,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0XF0,0X9F,0X90,0XBB,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X61,0X6C,0X74,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0XF0,0X9F,0X8D,0X94,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X61,0X6C,0X74,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0XF0,0X9F,0X9A,0X80,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X61,0X6C,0X74,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0XE2,0X9A,0XBD,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X61,0X6C,0X74,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0XF0,0X9F,0X94,0XA7,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X61,0X6C,0X74,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0XF0,0X9F,0X94,0XA2,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X61,0X6C,0X74,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0XF0,0X9F,0X8E,0X8C,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0XA,0X20,0X20,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X69,0X2D,0X70,0X69,0X63,0X6B,0X65,0X72,0X2D,0X65,0X6D,0X6F,0X6A,0X6F,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0XA,0X20,0X20,0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X69,0X67,0X61,0X74,0X69,0X6F,0X6E,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X70,0X72,0X65,0X76,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X2D,0X25,0X73,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X6F,0X69,0X6E,0X74,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X75,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X3E,0X50,0X72,0X65,0X76,0X69,0X6F,0X75,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X6E,0X65,0X78,0X74,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X23,0X69,0X64,0X2D,0X25,0X73,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X6F,0X69,0X6E,0X74,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X6F,0X69,0X6E,0X64,0X65,0X78,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X75,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X62,0X74,0X6E,0X22,0X3E,0X4E,0X65,0X78,0X74,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct emoji_picker_template {const char* cat_smileys; +int animals; +const char* cat_animals; +int food; +const char* cat_food; +int travel; +const char* cat_travel; +int activities; +const char* cat_activities; +int objects; +const char* cat_objects; +int symbols; +const char* cat_symbols; +int flags; +const char* cat_flags; +const char* emojis; +const char* status_id; +unsigned index_previous; +const char* previous_enabled; +unsigned index_next; +}; +char* tmpl_gen_emoji_picker(struct emoji_picker_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_emoji_picker, data->cat_smileys?data->cat_smileys:"", data->animals, data->cat_animals?data->cat_animals:"", data->food, data->cat_food?data->cat_food:"", data->travel, data->cat_travel?data->cat_travel:"", data->activities, data->cat_activities?data->cat_activities:"", data->objects, data->cat_objects?data->cat_objects:"", data->symbols, data->cat_symbols?data->cat_symbols:"", data->flags, data->cat_flags?data->cat_flags:"", data->emojis?data->emojis:"", data->status_id?data->status_id:"", data->index_previous, data->previous_enabled?data->previous_enabled:"", data->status_id?data->status_id:"", data->index_next); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/emoji_reaction.ctmpl b/static/emoji_reaction.ctmpl new file mode 100644 index 0000000..25a9d95 --- /dev/null +++ b/static/emoji_reaction.ctmpl @@ -0,0 +1,16 @@ +#ifndef __emoji_reaction +#define __emoji_reaction +static const char data_emoji_reaction[] = {0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X2F,0X72,0X65,0X61,0X63,0X74,0X2F,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X69,0X2D,0X72,0X65,0X61,0X63,0X74,0X2D,0X62,0X6F,0X78,0X20,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X2D,0X61,0X6C,0X74,0X20,0X25,0X73,0X22,0X3E,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X69,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X69,0X2D,0X6E,0X75,0X6D,0X22,0X3E,0X25,0X75,0X3C,0X73,0X70,0X61,0X6E,0X3E,0X3C,0X2F,0X61,0X3E,0}; +struct emoji_reaction_template {const char* prefix; +const char* status_id; +const char* emoji; +const char* emoji_active; +unsigned emoji_count; +}; +char* tmpl_gen_emoji_reaction(struct emoji_reaction_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_emoji_reaction, data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->emoji?data->emoji:"", data->emoji_active?data->emoji_active:"", data->emoji?data->emoji:"", data->emoji_count); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/emoji_reactions.ctmpl b/static/emoji_reactions.ctmpl new file mode 100644 index 0000000..b0907a2 --- /dev/null +++ b/static/emoji_reactions.ctmpl @@ -0,0 +1,12 @@ +#ifndef __emoji_reactions +#define __emoji_reactions +static const char data_emoji_reactions[] = {0X3C,0X75,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X69,0X2D,0X72,0X65,0X61,0X63,0X74,0X69,0X6F,0X6E,0X73,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X75,0X6C,0X3E,0}; +struct emoji_reactions_template {const char* emojis; +}; +char* tmpl_gen_emoji_reactions(struct emoji_reactions_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_emoji_reactions, data->emojis?data->emojis:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/emoji_reactions.tmpl b/static/emoji_reactions.tmpl new file mode 100644 index 0000000..0c78115 --- /dev/null +++ b/static/emoji_reactions.tmpl @@ -0,0 +1,3 @@ + diff --git a/static/error.ctmpl b/static/error.ctmpl new file mode 100644 index 0000000..647eeda --- /dev/null +++ b/static/error.ctmpl @@ -0,0 +1,14 @@ +#ifndef __error +#define __error +static const char data_error[] = {0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X65,0X2D,0X25,0X73,0X20,0X25,0X73,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0}; +struct error_template {const char* err_type; +const char* is_padded; +const char* error; +}; +char* tmpl_gen_error(struct error_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_error, data->err_type?data->err_type:"", data->is_padded?data->is_padded:"", data->error?data->error:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/error.tmpl b/static/error.tmpl new file mode 100644 index 0000000..37ee540 --- /dev/null +++ b/static/error.tmpl @@ -0,0 +1 @@ +{{%s:error}} diff --git a/static/error_404.ctmpl b/static/error_404.ctmpl new file mode 100644 index 0000000..8e198ad --- /dev/null +++ b/static/error_404.ctmpl @@ -0,0 +1,12 @@ +#ifndef __error_404 +#define __error_404 +static const char data_error_404[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X6D,0X70,0X6C,0X65,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X68,0X31,0X3E,0X34,0X30,0X34,0X3C,0X2F,0X68,0X31,0X3E,0XA,0X20,0X20,0X3C,0X70,0X3E,0X25,0X73,0X3C,0X2F,0X70,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct error_404_template {const char* error; +}; +char* tmpl_gen_error_404(struct error_404_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_error_404, data->error?data->error:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/error_404.tmpl b/static/error_404.tmpl new file mode 100644 index 0000000..6291b6b --- /dev/null +++ b/static/error_404.tmpl @@ -0,0 +1,4 @@ +
+

404

+

{{%s:error}}

+
diff --git a/static/favourites_page.ctmpl b/static/favourites_page.ctmpl new file mode 100644 index 0000000..f18eeca --- /dev/null +++ b/static/favourites_page.ctmpl @@ -0,0 +1,13 @@ +#ifndef __favourites_page +#define __favourites_page +static const char data_favourites_page[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X6D,0X70,0X6C,0X65,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X68,0X31,0X3E,0X46,0X61,0X76,0X6F,0X72,0X69,0X74,0X65,0X73,0X3C,0X2F,0X68,0X31,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X61,0X76,0X6F,0X75,0X72,0X69,0X74,0X65,0X73,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X25,0X73,0}; +struct favourites_page_template {const char* statuses; +const char* navigation; +}; +char* tmpl_gen_favourites_page(struct favourites_page_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_favourites_page, data->statuses?data->statuses:"", data->navigation?data->navigation:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/favourites_page.tmpl b/static/favourites_page.tmpl new file mode 100644 index 0000000..60de2ff --- /dev/null +++ b/static/favourites_page.tmpl @@ -0,0 +1,7 @@ +
+

Favorites

+
+
+ {{%s:statuses}} +
+{{%s:navigation}} diff --git a/static/follow_svg.ctmpl b/static/follow_svg.ctmpl new file mode 100644 index 0000000..9b84add --- /dev/null +++ b/static/follow_svg.ctmpl @@ -0,0 +1,5 @@ +#ifndef __follow_svg +#define __follow_svg +static const char data_follow_svg[] = {0X3C,0X73,0X76,0X67,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X6F,0X6C,0X6C,0X6F,0X77,0X22,0X20,0X78,0X6D,0X6C,0X6E,0X73,0X3D,0X22,0X68,0X74,0X74,0X70,0X3A,0X2F,0X2F,0X77,0X77,0X77,0X2E,0X77,0X33,0X2E,0X6F,0X72,0X67,0X2F,0X32,0X30,0X30,0X30,0X2F,0X73,0X76,0X67,0X22,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X30,0X22,0X20,0X68,0X65,0X69,0X67,0X68,0X74,0X3D,0X22,0X32,0X30,0X22,0X20,0X76,0X69,0X65,0X77,0X42,0X6F,0X78,0X3D,0X22,0X30,0X20,0X30,0X20,0X32,0X34,0X20,0X32,0X34,0X22,0X20,0X66,0X69,0X6C,0X6C,0X3D,0X22,0X6E,0X6F,0X6E,0X65,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X3D,0X22,0X23,0X30,0X30,0X30,0X30,0X30,0X30,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X63,0X61,0X70,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X6A,0X6F,0X69,0X6E,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X3E,0X3C,0X70,0X61,0X74,0X68,0X20,0X64,0X3D,0X22,0X4D,0X31,0X36,0X20,0X32,0X31,0X76,0X2D,0X32,0X61,0X34,0X20,0X34,0X20,0X30,0X20,0X30,0X20,0X30,0X2D,0X34,0X2D,0X34,0X48,0X35,0X61,0X34,0X20,0X34,0X20,0X30,0X20,0X30,0X20,0X30,0X2D,0X34,0X20,0X34,0X76,0X32,0X22,0X3E,0X3C,0X2F,0X70,0X61,0X74,0X68,0X3E,0X3C,0X63,0X69,0X72,0X63,0X6C,0X65,0X20,0X63,0X78,0X3D,0X22,0X38,0X2E,0X35,0X22,0X20,0X63,0X79,0X3D,0X22,0X37,0X22,0X20,0X72,0X3D,0X22,0X34,0X22,0X3E,0X3C,0X2F,0X63,0X69,0X72,0X63,0X6C,0X65,0X3E,0X3C,0X6C,0X69,0X6E,0X65,0X20,0X78,0X31,0X3D,0X22,0X32,0X30,0X22,0X20,0X79,0X31,0X3D,0X22,0X38,0X22,0X20,0X78,0X32,0X3D,0X22,0X32,0X30,0X22,0X20,0X79,0X32,0X3D,0X22,0X31,0X34,0X22,0X3E,0X3C,0X2F,0X6C,0X69,0X6E,0X65,0X3E,0X3C,0X6C,0X69,0X6E,0X65,0X20,0X78,0X31,0X3D,0X22,0X32,0X33,0X22,0X20,0X79,0X31,0X3D,0X22,0X31,0X31,0X22,0X20,0X78,0X32,0X3D,0X22,0X31,0X37,0X22,0X20,0X79,0X32,0X3D,0X22,0X31,0X31,0X22,0X3E,0X3C,0X2F,0X6C,0X69,0X6E,0X65,0X3E,0X3C,0X2F,0X73,0X76,0X67,0X3E,0}; + +#endif diff --git a/static/follow_svg.tmpl b/static/follow_svg.tmpl new file mode 100644 index 0000000..1c4063b --- /dev/null +++ b/static/follow_svg.tmpl @@ -0,0 +1 @@ + diff --git a/static/hashtag.ctmpl b/static/hashtag.ctmpl new file mode 100644 index 0000000..7d6bed0 --- /dev/null +++ b/static/hashtag.ctmpl @@ -0,0 +1,13 @@ +#ifndef __hashtag +#define __hashtag +static const char data_hashtag[] = {0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X74,0X61,0X67,0X2F,0X25,0X73,0X22,0X20,0X73,0X74,0X79,0X6C,0X65,0X3D,0X22,0X66,0X6F,0X6E,0X74,0X2D,0X73,0X69,0X7A,0X65,0X3A,0X20,0X25,0X75,0X70,0X78,0X3B,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X61,0X73,0X68,0X74,0X61,0X67,0X2D,0X69,0X74,0X65,0X6D,0X22,0X3E,0X23,0X25,0X73,0X3C,0X2F,0X61,0X3E,0}; +struct hashtag_template {const char* prefix; +const char* tag; +}; +char* tmpl_gen_hashtag(struct hashtag_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_hashtag, data->prefix?data->prefix:"", data->tag?data->tag:"", data->tag?data->tag:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/hashtag.tmpl b/static/hashtag.tmpl new file mode 100644 index 0000000..d551a32 --- /dev/null +++ b/static/hashtag.tmpl @@ -0,0 +1 @@ +#{{%s:tag}} diff --git a/static/hashtag_page.ctmpl b/static/hashtag_page.ctmpl new file mode 100644 index 0000000..d19664e --- /dev/null +++ b/static/hashtag_page.ctmpl @@ -0,0 +1,15 @@ +#ifndef __hashtag_page +#define __hashtag_page +static const char data_hashtag_page[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X6D,0X70,0X6C,0X65,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X68,0X31,0X3E,0X48,0X61,0X73,0X68,0X74,0X61,0X67,0X20,0X2D,0X20,0X23,0X25,0X73,0X3C,0X2F,0X68,0X31,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X25,0X73,0XA,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X61,0X73,0X68,0X74,0X61,0X67,0X73,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X25,0X73,0}; +struct hashtag_page_template {const char* tag; +const char* tag_statistics; +const char* statuses; +const char* navigation; +}; +char* tmpl_gen_hashtag_page(struct hashtag_page_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_hashtag_page, data->tag?data->tag:"", data->tag_statistics?data->tag_statistics:"", data->statuses?data->statuses:"", data->navigation?data->navigation:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/hashtag_page.tmpl b/static/hashtag_page.tmpl new file mode 100644 index 0000000..c4762da --- /dev/null +++ b/static/hashtag_page.tmpl @@ -0,0 +1,8 @@ +
+

Hashtag - #{{%s:tag}}

+
+{{%s:tag_statistics}} +
+ {{%s:statuses}} +
+{{%s:navigation}} diff --git a/static/in_reply_to.ctmpl b/static/in_reply_to.ctmpl new file mode 100644 index 0000000..4bb2a95 --- /dev/null +++ b/static/in_reply_to.ctmpl @@ -0,0 +1,15 @@ +#ifndef __in_reply_to +#define __in_reply_to +static const char data_in_reply_to[] = {0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X69,0X6E,0X2D,0X72,0X65,0X70,0X6C,0X79,0X2D,0X74,0X6F,0X22,0X3E,0XA,0X20,0X20,0X3C,0X73,0X76,0X67,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X69,0X6E,0X2D,0X72,0X65,0X70,0X6C,0X79,0X2D,0X74,0X6F,0X2D,0X69,0X63,0X6F,0X6E,0X22,0X20,0X78,0X6D,0X6C,0X6E,0X73,0X3D,0X22,0X68,0X74,0X74,0X70,0X3A,0X2F,0X2F,0X77,0X77,0X77,0X2E,0X77,0X33,0X2E,0X6F,0X72,0X67,0X2F,0X32,0X30,0X30,0X30,0X2F,0X73,0X76,0X67,0X22,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X30,0X22,0X20,0X68,0X65,0X69,0X67,0X68,0X74,0X3D,0X22,0X32,0X30,0X22,0X20,0X76,0X69,0X65,0X77,0X42,0X6F,0X78,0X3D,0X22,0X30,0X20,0X30,0X20,0X32,0X34,0X20,0X32,0X34,0X22,0X20,0X66,0X69,0X6C,0X6C,0X3D,0X22,0X6E,0X6F,0X6E,0X65,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X3D,0X22,0X23,0X30,0X30,0X30,0X30,0X30,0X30,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X63,0X61,0X70,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X6A,0X6F,0X69,0X6E,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X3E,0X3C,0X70,0X61,0X74,0X68,0X20,0X64,0X3D,0X22,0X4D,0X31,0X34,0X20,0X39,0X6C,0X36,0X20,0X36,0X2D,0X36,0X20,0X36,0X22,0X2F,0X3E,0X3C,0X70,0X61,0X74,0X68,0X20,0X64,0X3D,0X22,0X4D,0X34,0X20,0X34,0X76,0X37,0X61,0X34,0X20,0X34,0X20,0X30,0X20,0X30,0X20,0X30,0X20,0X34,0X20,0X34,0X68,0X31,0X31,0X22,0X2F,0X3E,0X3C,0X2F,0X73,0X76,0X67,0X3E,0X20,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X69,0X6E,0X2D,0X72,0X65,0X70,0X6C,0X79,0X2D,0X74,0X6F,0X2D,0X69,0X64,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X23,0X25,0X73,0X22,0X3E,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X69,0X6E,0X2D,0X72,0X65,0X70,0X6C,0X79,0X2D,0X74,0X6F,0X2D,0X74,0X65,0X78,0X74,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X63,0X74,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0}; +struct in_reply_to_template {const char* prefix; +const char* status_id; +const char* in_reply_to_text; +const char* acct; +}; +char* tmpl_gen_in_reply_to(struct in_reply_to_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_in_reply_to, data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->status_id?data->status_id:"", data->in_reply_to_text?data->in_reply_to_text:"", data->acct?data->acct:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/in_reply_to.tmpl b/static/in_reply_to.tmpl new file mode 100644 index 0000000..0b75e40 --- /dev/null +++ b/static/in_reply_to.tmpl @@ -0,0 +1,3 @@ + + {{%s:in_reply_to_text}} {{%s:acct}} + diff --git a/static/index.ctmpl b/static/index.ctmpl new file mode 100644 index 0000000..5adebe5 --- /dev/null +++ b/static/index.ctmpl @@ -0,0 +1,42 @@ +#ifndef __index +#define __index +static const char data_index[] = {0X3C,0X21,0X44,0X4F,0X43,0X54,0X59,0X50,0X45,0X20,0X68,0X74,0X6D,0X6C,0X3E,0XA,0X3C,0X68,0X74,0X6D,0X6C,0X3E,0XA,0X20,0X20,0X3C,0X68,0X65,0X61,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X6D,0X65,0X74,0X61,0X20,0X63,0X68,0X61,0X72,0X73,0X65,0X74,0X3D,0X22,0X75,0X74,0X66,0X2D,0X38,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X69,0X74,0X6C,0X65,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X69,0X74,0X6C,0X65,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X6E,0X6B,0X20,0X72,0X65,0X6C,0X3D,0X22,0X69,0X63,0X6F,0X6E,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X69,0X6D,0X61,0X67,0X65,0X2F,0X70,0X6E,0X67,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X2F,0X66,0X61,0X76,0X69,0X63,0X6F,0X6E,0X2E,0X70,0X6E,0X67,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X6E,0X6B,0X20,0X72,0X65,0X6C,0X3D,0X22,0X73,0X74,0X79,0X6C,0X65,0X73,0X68,0X65,0X65,0X74,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X74,0X65,0X78,0X74,0X2F,0X63,0X73,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X2F,0X25,0X73,0X25,0X73,0X2E,0X63,0X73,0X73,0X22,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X68,0X65,0X61,0X64,0X3E,0XA,0X20,0X20,0X3C,0X62,0X6F,0X64,0X79,0X20,0X25,0X73,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X3E,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X69,0X64,0X3D,0X22,0X6D,0X61,0X69,0X6E,0X2D,0X70,0X61,0X67,0X65,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X69,0X64,0X3D,0X22,0X6D,0X61,0X69,0X6E,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X68,0X65,0X61,0X64,0X65,0X72,0X20,0X69,0X64,0X3D,0X22,0X6E,0X61,0X76,0X62,0X61,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X22,0X3E,0X3C,0X69,0X6D,0X67,0X20,0X73,0X72,0X63,0X3D,0X22,0X2F,0X74,0X72,0X65,0X65,0X62,0X69,0X72,0X64,0X5F,0X6C,0X6F,0X67,0X6F,0X2E,0X70,0X6E,0X67,0X22,0X20,0X68,0X65,0X69,0X67,0X68,0X74,0X3D,0X22,0X34,0X32,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X69,0X6E,0X66,0X6F,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X69,0X64,0X3D,0X22,0X6E,0X61,0X76,0X62,0X61,0X72,0X2D,0X72,0X69,0X67,0X68,0X74,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X69,0X64,0X3D,0X22,0X6E,0X61,0X76,0X62,0X61,0X72,0X2D,0X72,0X69,0X67,0X68,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X53,0X65,0X61,0X72,0X63,0X68,0X62,0X6F,0X78,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X73,0X65,0X61,0X72,0X63,0X68,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X67,0X65,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X74,0X65,0X78,0X74,0X62,0X6F,0X78,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X67,0X72,0X6F,0X75,0X70,0X20,0X67,0X72,0X6F,0X75,0X70,0X2D,0X6C,0X65,0X66,0X74,0X20,0X67,0X72,0X6F,0X75,0X70,0X2D,0X69,0X6E,0X70,0X75,0X74,0X62,0X6F,0X78,0X22,0X20,0X70,0X6C,0X61,0X63,0X65,0X68,0X6F,0X6C,0X64,0X65,0X72,0X3D,0X22,0X25,0X73,0X22,0X20,0X69,0X64,0X3D,0X22,0X73,0X65,0X61,0X72,0X63,0X68,0X62,0X6F,0X78,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X71,0X22,0X3E,0X3C,0X21,0X2D,0X2D,0X20,0X69,0X20,0X68,0X61,0X74,0X65,0X20,0X48,0X54,0X4D,0X4C,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X2D,0X2D,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X20,0X67,0X72,0X6F,0X75,0X70,0X20,0X67,0X72,0X6F,0X75,0X70,0X2D,0X72,0X69,0X67,0X68,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X68,0X65,0X61,0X64,0X65,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X69,0X64,0X3D,0X22,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X4E,0X61,0X76,0X69,0X67,0X61,0X74,0X69,0X6F,0X6E,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X69,0X64,0X3D,0X22,0X6C,0X65,0X66,0X74,0X62,0X61,0X72,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X6C,0X6F,0X63,0X61,0X6C,0X2F,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X66,0X65,0X64,0X65,0X72,0X61,0X74,0X65,0X64,0X2F,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X73,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X6C,0X69,0X73,0X74,0X73,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X66,0X61,0X76,0X6F,0X75,0X72,0X69,0X74,0X65,0X73,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X62,0X6F,0X6F,0X6B,0X6D,0X61,0X72,0X6B,0X73,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X64,0X69,0X72,0X65,0X63,0X74,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X63,0X6F,0X6E,0X66,0X69,0X67,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X44,0X69,0X73,0X70,0X6C,0X61,0X79,0X20,0X66,0X6F,0X72,0X20,0X70,0X6F,0X73,0X74,0X73,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X69,0X64,0X3D,0X22,0X6D,0X61,0X69,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X4E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X73,0X20,0X61,0X6E,0X64,0X20,0X73,0X75,0X63,0X68,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X69,0X64,0X3D,0X22,0X72,0X69,0X67,0X68,0X74,0X62,0X61,0X72,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0XA,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X53,0X6F,0X75,0X72,0X63,0X65,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X73,0X63,0X72,0X69,0X70,0X74,0X20,0X73,0X72,0X63,0X3D,0X22,0X2F,0X6A,0X73,0X2F,0X6D,0X61,0X69,0X6E,0X2E,0X6A,0X73,0X22,0X3E,0X3C,0X2F,0X73,0X63,0X72,0X69,0X70,0X74,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X62,0X6F,0X64,0X79,0X3E,0XA,0X3C,0X2F,0X68,0X74,0X6D,0X6C,0X3E,0}; +struct index_template {const char* title; +const char* theme; +const char* theme_clr; +const char* background_url; +const char* prefix; +const char* name; +const char* sidebar_cnt; +const char* placeholder; +const char* search_btn; +const char* active_home; +const char* home; +const char* active_local; +const char* local; +const char* active_federated; +const char* federated; +const char* active_notifications; +const char* notifications; +const char* active_lists; +const char* lists; +const char* active_favourites; +const char* favourites; +const char* active_bookmarks; +const char* bookmarks; +const char* active_direct; +const char* direct; +const char* active_config; +const char* config; +const char* sidebar_leftbar; +const char* instance_panel; +const char* main; +const char* sidebar_rightbar; +}; +char* tmpl_gen_index(struct index_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_index, data->title?data->title:"", data->theme?data->theme:"", data->theme_clr?data->theme_clr:"", data->background_url?data->background_url:"", data->prefix?data->prefix:"", data->name?data->name:"", data->sidebar_cnt?data->sidebar_cnt:"", data->prefix?data->prefix:"", data->placeholder?data->placeholder:"", data->search_btn?data->search_btn:"", data->active_home?data->active_home:"", data->prefix?data->prefix:"", data->home?data->home:"", data->active_local?data->active_local:"", data->prefix?data->prefix:"", data->local?data->local:"", data->active_federated?data->active_federated:"", data->prefix?data->prefix:"", data->federated?data->federated:"", data->active_notifications?data->active_notifications:"", data->prefix?data->prefix:"", data->notifications?data->notifications:"", data->active_lists?data->active_lists:"", data->prefix?data->prefix:"", data->lists?data->lists:"", data->active_favourites?data->active_favourites:"", data->prefix?data->prefix:"", data->favourites?data->favourites:"", data->active_bookmarks?data->active_bookmarks:"", data->prefix?data->prefix:"", data->bookmarks?data->bookmarks:"", data->active_direct?data->active_direct:"", data->prefix?data->prefix:"", data->direct?data->direct:"", data->active_config?data->active_config:"", data->prefix?data->prefix:"", data->config?data->config:"", data->sidebar_leftbar?data->sidebar_leftbar:"", data->instance_panel?data->instance_panel:"", data->main?data->main:"", data->sidebar_rightbar?data->sidebar_rightbar:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/index.tmpl b/static/index.tmpl new file mode 100644 index 0000000..cf730da --- /dev/null +++ b/static/index.tmpl @@ -0,0 +1,63 @@ + + + + + {{ %s : title }} + + + + +
+
+
+ + + + + + + + + + + + +
+ {{ %s : main }} +
+
+
+ + + + + diff --git a/static/instance.ctmpl b/static/instance.ctmpl new file mode 100644 index 0000000..cacea32 --- /dev/null +++ b/static/instance.ctmpl @@ -0,0 +1,5 @@ +#ifndef __instance +#define __instance +static const char data_instance[] = {0X49,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X20,0X69,0X6E,0X66,0X6F,0X72,0X6D,0X61,0X74,0X69,0X6F,0X6E,0}; + +#endif diff --git a/static/interaction_buttons.ctmpl b/static/interaction_buttons.ctmpl index 19aa509..82980f3 100644 --- a/static/interaction_buttons.ctmpl +++ b/static/interaction_buttons.ctmpl @@ -8,7 +8,7 @@ const char* unrepeat; const char* repeat_active; const char* repeats_count; const char* repeat_text; -const char* favourite; +const char* unfavourite; const char* favourite_active; const char* favourites_count; const char* favourites_text; @@ -18,7 +18,7 @@ const char* rel_time; }; char* tmpl_gen_interaction_buttons(struct interaction_buttons_template* data, unsigned* size){ char* ret; -unsigned s = easprintf(&ret, data_interaction_buttons, data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->status_id?data->status_id:"", data->reply_count?data->reply_count:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->unrepeat?data->unrepeat:"", data->repeat_active?data->repeat_active:"", data->repeats_count?data->repeats_count:"", data->repeat_text?data->repeat_text:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->favourite?data->favourite:"", data->favourite_active?data->favourite_active:"", data->favourites_count?data->favourites_count:"", data->favourites_text?data->favourites_text:"", data->likeboost_btn?data->likeboost_btn:"", data->reactions_btn?data->reactions_btn:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->status_id?data->status_id:"", data->rel_time?data->rel_time:""); +unsigned s = easprintf(&ret, data_interaction_buttons, data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->status_id?data->status_id:"", data->reply_count?data->reply_count:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->unrepeat?data->unrepeat:"", data->repeat_active?data->repeat_active:"", data->repeats_count?data->repeats_count:"", data->repeat_text?data->repeat_text:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->unfavourite?data->unfavourite:"", data->favourite_active?data->favourite_active:"", data->favourites_count?data->favourites_count:"", data->favourites_text?data->favourites_text:"", data->likeboost_btn?data->likeboost_btn:"", data->reactions_btn?data->reactions_btn:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->status_id?data->status_id:"", data->rel_time?data->rel_time:""); if (size) *size = s; return ret; } diff --git a/static/like_svg.ctmpl b/static/like_svg.ctmpl new file mode 100644 index 0000000..6fc89d4 --- /dev/null +++ b/static/like_svg.ctmpl @@ -0,0 +1,5 @@ +#ifndef __like_svg +#define __like_svg +static const char data_like_svg[] = {0X3C,0X73,0X76,0X67,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6C,0X69,0X6B,0X65,0X22,0X20,0X78,0X6D,0X6C,0X6E,0X73,0X3D,0X22,0X68,0X74,0X74,0X70,0X3A,0X2F,0X2F,0X77,0X77,0X77,0X2E,0X77,0X33,0X2E,0X6F,0X72,0X67,0X2F,0X32,0X30,0X30,0X30,0X2F,0X73,0X76,0X67,0X22,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X30,0X22,0X20,0X68,0X65,0X69,0X67,0X68,0X74,0X3D,0X22,0X32,0X30,0X22,0X20,0X76,0X69,0X65,0X77,0X42,0X6F,0X78,0X3D,0X22,0X30,0X20,0X30,0X20,0X32,0X34,0X20,0X32,0X34,0X22,0X20,0X66,0X69,0X6C,0X6C,0X3D,0X22,0X6E,0X6F,0X6E,0X65,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X3D,0X22,0X23,0X30,0X30,0X30,0X30,0X30,0X30,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X63,0X61,0X70,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X6A,0X6F,0X69,0X6E,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X3E,0X3C,0X70,0X6F,0X6C,0X79,0X67,0X6F,0X6E,0X20,0X70,0X6F,0X69,0X6E,0X74,0X73,0X3D,0X22,0X31,0X32,0X20,0X32,0X20,0X31,0X35,0X2E,0X30,0X39,0X20,0X38,0X2E,0X32,0X36,0X20,0X32,0X32,0X20,0X39,0X2E,0X32,0X37,0X20,0X31,0X37,0X20,0X31,0X34,0X2E,0X31,0X34,0X20,0X31,0X38,0X2E,0X31,0X38,0X20,0X32,0X31,0X2E,0X30,0X32,0X20,0X31,0X32,0X20,0X31,0X37,0X2E,0X37,0X37,0X20,0X35,0X2E,0X38,0X32,0X20,0X32,0X31,0X2E,0X30,0X32,0X20,0X37,0X20,0X31,0X34,0X2E,0X31,0X34,0X20,0X32,0X20,0X39,0X2E,0X32,0X37,0X20,0X38,0X2E,0X39,0X31,0X20,0X38,0X2E,0X32,0X36,0X20,0X31,0X32,0X20,0X32,0X22,0X3E,0X3C,0X2F,0X70,0X6F,0X6C,0X79,0X67,0X6F,0X6E,0X3E,0X3C,0X2F,0X73,0X76,0X67,0X3E,0}; + +#endif diff --git a/static/like_svg.tmpl b/static/like_svg.tmpl new file mode 100644 index 0000000..3b6527c --- /dev/null +++ b/static/like_svg.tmpl @@ -0,0 +1 @@ + diff --git a/static/likeboost.ctmpl b/static/likeboost.ctmpl new file mode 100644 index 0000000..1714867 --- /dev/null +++ b/static/likeboost.ctmpl @@ -0,0 +1,13 @@ +#ifndef __likeboost +#define __likeboost +static const char data_likeboost[] = {0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X2F,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X74,0X79,0X70,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X6C,0X69,0X6B,0X65,0X62,0X6F,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X6F,0X69,0X6E,0X74,0X65,0X72,0X20,0X73,0X74,0X61,0X74,0X62,0X74,0X6E,0X20,0X6C,0X69,0X6B,0X65,0X62,0X6F,0X6F,0X73,0X74,0X2D,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X76,0X67,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6F,0X6E,0X65,0X2D,0X63,0X6C,0X69,0X63,0X6B,0X2D,0X73,0X6F,0X66,0X74,0X77,0X61,0X72,0X65,0X22,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X30,0X22,0X20,0X68,0X65,0X69,0X67,0X68,0X74,0X3D,0X22,0X32,0X30,0X22,0X20,0X66,0X69,0X6C,0X6C,0X3D,0X22,0X6E,0X6F,0X6E,0X65,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X3D,0X22,0X23,0X30,0X30,0X30,0X30,0X30,0X30,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X63,0X61,0X70,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X6A,0X6F,0X69,0X6E,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X22,0X20,0X76,0X65,0X72,0X73,0X69,0X6F,0X6E,0X3D,0X22,0X31,0X2E,0X31,0X22,0X20,0X76,0X69,0X65,0X77,0X42,0X6F,0X78,0X3D,0X22,0X30,0X20,0X30,0X20,0X32,0X34,0X20,0X32,0X34,0X22,0X20,0X78,0X6D,0X6C,0X6E,0X73,0X3D,0X22,0X68,0X74,0X74,0X70,0X3A,0X2F,0X2F,0X77,0X77,0X77,0X2E,0X77,0X33,0X2E,0X6F,0X72,0X67,0X2F,0X32,0X30,0X30,0X30,0X2F,0X73,0X76,0X67,0X22,0X3E,0X3C,0X67,0X3E,0X3C,0X67,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X31,0X2E,0X39,0X38,0X22,0X3E,0X3C,0X70,0X61,0X74,0X68,0X20,0X64,0X3D,0X22,0X6D,0X31,0X39,0X2E,0X31,0X35,0X20,0X38,0X2E,0X35,0X30,0X36,0X31,0X20,0X32,0X2E,0X37,0X35,0X39,0X38,0X20,0X32,0X2E,0X37,0X35,0X39,0X38,0X2D,0X32,0X2E,0X37,0X35,0X39,0X38,0X20,0X32,0X2E,0X37,0X35,0X39,0X38,0X22,0X2F,0X3E,0X3C,0X70,0X61,0X74,0X68,0X20,0X64,0X3D,0X22,0X6D,0X31,0X34,0X2E,0X37,0X35,0X36,0X20,0X31,0X31,0X2E,0X33,0X32,0X35,0X73,0X32,0X2E,0X35,0X34,0X38,0X34,0X2D,0X30,0X2E,0X30,0X35,0X30,0X33,0X32,0X20,0X36,0X2E,0X33,0X32,0X35,0X38,0X20,0X30,0X2E,0X30,0X31,0X30,0X32,0X36,0X6D,0X2D,0X31,0X35,0X2E,0X36,0X33,0X39,0X20,0X31,0X30,0X2E,0X38,0X30,0X37,0X2D,0X32,0X2E,0X37,0X35,0X39,0X38,0X2D,0X32,0X2E,0X37,0X35,0X39,0X38,0X20,0X32,0X2E,0X37,0X35,0X39,0X38,0X2D,0X32,0X2E,0X37,0X35,0X39,0X38,0X22,0X2F,0X3E,0X3C,0X70,0X61,0X74,0X68,0X20,0X64,0X3D,0X22,0X6D,0X32,0X32,0X2E,0X34,0X20,0X31,0X35,0X2E,0X33,0X32,0X37,0X76,0X31,0X2E,0X32,0X32,0X35,0X39,0X63,0X30,0X20,0X31,0X2E,0X31,0X35,0X36,0X2D,0X31,0X2E,0X32,0X33,0X35,0X36,0X20,0X32,0X2E,0X37,0X35,0X39,0X38,0X2D,0X32,0X2E,0X37,0X35,0X39,0X38,0X20,0X32,0X2E,0X37,0X35,0X39,0X38,0X68,0X2D,0X31,0X36,0X2E,0X36,0X36,0X34,0X22,0X2F,0X3E,0X3C,0X2F,0X67,0X3E,0X3C,0X70,0X6F,0X6C,0X79,0X67,0X6F,0X6E,0X20,0X74,0X72,0X61,0X6E,0X73,0X66,0X6F,0X72,0X6D,0X3D,0X22,0X6D,0X61,0X74,0X72,0X69,0X78,0X28,0X2E,0X36,0X30,0X37,0X33,0X36,0X20,0X30,0X20,0X30,0X20,0X2E,0X36,0X30,0X37,0X33,0X36,0X20,0X2E,0X36,0X30,0X31,0X30,0X36,0X20,0X2E,0X36,0X33,0X35,0X37,0X37,0X29,0X22,0X20,0X70,0X6F,0X69,0X6E,0X74,0X73,0X3D,0X22,0X31,0X38,0X2E,0X31,0X38,0X20,0X32,0X31,0X2E,0X30,0X32,0X20,0X31,0X32,0X20,0X31,0X37,0X2E,0X37,0X37,0X20,0X35,0X2E,0X38,0X32,0X20,0X32,0X31,0X2E,0X30,0X32,0X20,0X37,0X20,0X31,0X34,0X2E,0X31,0X34,0X20,0X32,0X20,0X39,0X2E,0X32,0X37,0X20,0X38,0X2E,0X39,0X31,0X20,0X38,0X2E,0X32,0X36,0X20,0X31,0X32,0X20,0X32,0X20,0X31,0X35,0X2E,0X30,0X39,0X20,0X38,0X2E,0X32,0X36,0X20,0X32,0X32,0X20,0X39,0X2E,0X32,0X37,0X20,0X31,0X37,0X20,0X31,0X34,0X2E,0X31,0X34,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X2E,0X39,0X36,0X35,0X36,0X22,0X2F,0X3E,0X3C,0X2F,0X67,0X3E,0X3C,0X2F,0X73,0X76,0X67,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X4C,0X2B,0X52,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X3C,0X2F,0X74,0X64,0X3E,0}; +struct likeboost_template {const char* prefix; +const char* status_id; +}; +char* tmpl_gen_likeboost(struct likeboost_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_likeboost, data->prefix?data->prefix:"", data->status_id?data->status_id:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/list.ctmpl b/static/list.ctmpl new file mode 100644 index 0000000..2e13d25 --- /dev/null +++ b/static/list.ctmpl @@ -0,0 +1,14 @@ +#ifndef __list +#define __list +static const char data_list[] = {0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X6C,0X69,0X73,0X74,0X73,0X2F,0X66,0X6F,0X72,0X2F,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X20,0X73,0X70,0X6C,0X69,0X74,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0}; +struct list_template {const char* prefix; +const char* list_id; +const char* list; +}; +char* tmpl_gen_list(struct list_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_list, data->prefix?data->prefix:"", data->list_id?data->list_id:"", data->list?data->list:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/list.tmpl b/static/list.tmpl new file mode 100644 index 0000000..54517b2 --- /dev/null +++ b/static/list.tmpl @@ -0,0 +1 @@ +
  • {{%s:list}}
  • diff --git a/static/lists.ctmpl b/static/lists.ctmpl new file mode 100644 index 0000000..10caffe --- /dev/null +++ b/static/lists.ctmpl @@ -0,0 +1,13 @@ +#ifndef __lists +#define __lists +static const char data_lists[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6C,0X69,0X73,0X74,0X73,0X2D,0X76,0X69,0X65,0X77,0X22,0X3E,0XA,0X20,0X20,0X3C,0X68,0X31,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6C,0X69,0X73,0X74,0X73,0X2D,0X76,0X69,0X65,0X77,0X2D,0X68,0X65,0X61,0X64,0X65,0X72,0X22,0X3E,0X4C,0X69,0X73,0X74,0X73,0X3C,0X2F,0X68,0X31,0X3E,0XA,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6C,0X69,0X73,0X74,0X73,0X2D,0X76,0X69,0X65,0X77,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6C,0X61,0X72,0X67,0X65,0X2D,0X6C,0X69,0X73,0X74,0X20,0X63,0X65,0X6E,0X74,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0XA,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6C,0X61,0X72,0X67,0X65,0X2D,0X6C,0X69,0X73,0X74,0X20,0X63,0X65,0X6E,0X74,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X6C,0X69,0X73,0X74,0X73,0X2F,0X63,0X72,0X65,0X61,0X74,0X65,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X20,0X73,0X70,0X6C,0X69,0X74,0X20,0X63,0X65,0X6E,0X74,0X65,0X72,0X2D,0X74,0X65,0X78,0X74,0X20,0X62,0X6F,0X6C,0X64,0X2D,0X74,0X65,0X78,0X74,0X22,0X3E,0X43,0X72,0X65,0X61,0X74,0X65,0X20,0X6E,0X65,0X77,0X20,0X6C,0X69,0X73,0X74,0X3C,0X2F,0X61,0X3E,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct lists_template {const char* lists; +const char* prefix; +}; +char* tmpl_gen_lists(struct lists_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_lists, data->lists?data->lists:"", data->prefix?data->prefix:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/lists.tmpl b/static/lists.tmpl new file mode 100644 index 0000000..482f23b --- /dev/null +++ b/static/lists.tmpl @@ -0,0 +1,13 @@ +
    +

    Lists

    + +
    + + + +
    +
    diff --git a/static/login.ctmpl b/static/login.ctmpl new file mode 100644 index 0000000..8d4f48c --- /dev/null +++ b/static/login.ctmpl @@ -0,0 +1,20 @@ +#ifndef __login +#define __login +static const char data_login[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X6D,0X70,0X6C,0X65,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X68,0X31,0X3E,0X25,0X73,0X3C,0X2F,0X68,0X31,0X3E,0XA,0X20,0X20,0XA,0X20,0X20,0X25,0X73,0XA,0XA,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X6C,0X6F,0X67,0X69,0X6E,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X6F,0X72,0X6D,0X2D,0X67,0X72,0X6F,0X75,0X70,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X6C,0X6F,0X67,0X69,0X6E,0X2D,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3A,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X74,0X65,0X78,0X74,0X22,0X20,0X69,0X64,0X3D,0X22,0X6C,0X6F,0X67,0X69,0X6E,0X2D,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X6F,0X72,0X6D,0X2D,0X67,0X72,0X6F,0X75,0X70,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X6C,0X6F,0X67,0X69,0X6E,0X2D,0X70,0X61,0X73,0X73,0X77,0X6F,0X72,0X64,0X22,0X3E,0X25,0X73,0X3A,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X70,0X61,0X73,0X73,0X77,0X6F,0X72,0X64,0X22,0X20,0X69,0X64,0X3D,0X22,0X6C,0X6F,0X67,0X69,0X6E,0X2D,0X70,0X61,0X73,0X73,0X77,0X6F,0X72,0X64,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X70,0X61,0X73,0X73,0X77,0X6F,0X72,0X64,0X22,0X3E,0X3C,0X62,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X6F,0X72,0X6D,0X2D,0X67,0X72,0X6F,0X75,0X70,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0XA,0X20,0X20,0X3C,0X68,0X36,0X3E,0X25,0X73,0X3C,0X2F,0X68,0X36,0X3E,0XA,0XA,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X6C,0X6F,0X67,0X69,0X6E,0X2F,0X6F,0X61,0X75,0X74,0X68,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X6F,0X72,0X6D,0X2D,0X67,0X72,0X6F,0X75,0X70,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X2D,0X75,0X72,0X6C,0X22,0X3E,0X25,0X73,0X3A,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X75,0X72,0X6C,0X22,0X20,0X69,0X64,0X3D,0X22,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X2D,0X75,0X72,0X6C,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct login_template {const char* login_header; +const char* error; +const char* prefix; +const char* username; +const char* password; +const char* login_submit; +const char* instance_text; +const char* instance_url; +const char* instance_submit; +}; +char* tmpl_gen_login(struct login_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_login, data->login_header?data->login_header:"", data->error?data->error:"", data->prefix?data->prefix:"", data->username?data->username:"", data->password?data->password:"", data->login_submit?data->login_submit:"", data->instance_text?data->instance_text:"", data->prefix?data->prefix:"", data->instance_url?data->instance_url:"", data->instance_submit?data->instance_submit:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/login.tmpl b/static/login.tmpl new file mode 100644 index 0000000..3bfdea8 --- /dev/null +++ b/static/login.tmpl @@ -0,0 +1,29 @@ +
    +

    {{%s:login_header}}

    + + {{%s:error}} + +
    +
    + + +
    +
    + +
    +
    +
    + +
    +
    + +
    {{%s:instance_text}}
    + +
    +
    + + + +
    +
    +
    diff --git a/static/navigation.ctmpl b/static/navigation.ctmpl new file mode 100644 index 0000000..8d5c370 --- /dev/null +++ b/static/navigation.ctmpl @@ -0,0 +1,16 @@ +#ifndef __navigation +#define __navigation +static const char data_navigation[] = {0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X69,0X67,0X61,0X74,0X69,0X6F,0X6E,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X75,0X70,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X6F,0X69,0X6E,0X74,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X62,0X74,0X6E,0X22,0X3E,0X55,0X70,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X70,0X72,0X65,0X76,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X6F,0X69,0X6E,0X74,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X74,0X61,0X72,0X74,0X5F,0X69,0X64,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X6D,0X69,0X6E,0X5F,0X69,0X64,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X3E,0X50,0X72,0X65,0X76,0X69,0X6F,0X75,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X6E,0X65,0X78,0X74,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X6F,0X69,0X6E,0X74,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X73,0X74,0X61,0X72,0X74,0X5F,0X69,0X64,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X6D,0X61,0X78,0X5F,0X69,0X64,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X61,0X76,0X2D,0X62,0X74,0X6E,0X22,0X3E,0X4E,0X65,0X78,0X74,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0}; +struct navigation_template {const char* start_id; +const char* min_id; +const char* prev_active; +const char* prev_submit; +const char* max_id; +}; +char* tmpl_gen_navigation(struct navigation_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_navigation, data->start_id?data->start_id:"", data->min_id?data->min_id:"", data->prev_active?data->prev_active:"", data->prev_submit?data->prev_submit:"", data->start_id?data->start_id:"", data->max_id?data->max_id:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/navigation.tmpl b/static/navigation.tmpl new file mode 100644 index 0000000..07501b5 --- /dev/null +++ b/static/navigation.tmpl @@ -0,0 +1,32 @@ + + + + + + + diff --git a/static/notification.ctmpl b/static/notification.ctmpl new file mode 100644 index 0000000..c0a165f --- /dev/null +++ b/static/notification.ctmpl @@ -0,0 +1,16 @@ +#ifndef __notification +#define __notification +static const char data_notification[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X3E,0XA,0X20,0X20,0X3C,0X69,0X6D,0X67,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X75,0X73,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X74,0X65,0X78,0X74,0X2D,0X67,0X72,0X6F,0X75,0X70,0X2D,0X77,0X69,0X74,0X68,0X2D,0X69,0X63,0X6F,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X74,0X69,0X6F,0X6E,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X49,0X66,0X20,0X61,0X6E,0X79,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct notification_template {const char* avatar; +const char* username; +const char* action; +const char* action_item; +const char* content; +}; +char* tmpl_gen_notification(struct notification_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_notification, data->avatar?data->avatar:"", data->username?data->username:"", data->action?data->action:"", data->action_item?data->action_item:"", data->content?data->content:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/notification.tmpl b/static/notification.tmpl new file mode 100644 index 0000000..335b23e --- /dev/null +++ b/static/notification.tmpl @@ -0,0 +1,11 @@ +
    + +
    + + {{%s:username}} + {{%s:action}} + {{%s:action_item}} + + {{%s:content}} +
    +
    diff --git a/static/notification_action.ctmpl b/static/notification_action.ctmpl new file mode 100644 index 0000000..cd9eace --- /dev/null +++ b/static/notification_action.ctmpl @@ -0,0 +1,17 @@ +#ifndef __notification_action +#define __notification_action +static const char data_notification_action[] = {0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X20,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X72,0X65,0X67,0X75,0X6C,0X61,0X72,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X66,0X70,0X2D,0X74,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6D,0X67,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X74,0X61,0X62,0X6C,0X65,0X2D,0X62,0X69,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X69,0X6E,0X66,0X6F,0X2D,0X66,0X6F,0X72,0X6D,0X61,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X74,0X65,0X78,0X74,0X2D,0X67,0X72,0X6F,0X75,0X70,0X2D,0X77,0X69,0X74,0X68,0X2D,0X69,0X63,0X6F,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X74,0X69,0X74,0X6C,0X65,0X3D,0X22,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X74,0X69,0X6F,0X6E,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X40,0X25,0X73,0X22,0X3E,0X40,0X25,0X73,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0}; +struct notification_action_template {const char* avatar; +const char* acct; +const char* display_name; +const char* action; +const char* idk; +const char* prefix; +}; +char* tmpl_gen_notification_action(struct notification_action_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_notification_action, data->avatar?data->avatar:"", data->acct?data->acct:"", data->display_name?data->display_name:"", data->action?data->action:"", data->idk?data->idk:"", data->prefix?data->prefix:"", data->acct?data->acct:"", data->acct?data->acct:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/notification_action.tmpl b/static/notification_action.tmpl new file mode 100644 index 0000000..3269567 --- /dev/null +++ b/static/notification_action.tmpl @@ -0,0 +1,24 @@ + + + + + +
    + + + + + + +
    +
    + + {{%s:display_name}} + {{%s:action}} + {{%s:idk}} +
    + + @{{%s:acct}} + +
    +
    diff --git a/static/notification_compact.ctmpl b/static/notification_compact.ctmpl new file mode 100644 index 0000000..102d6fb --- /dev/null +++ b/static/notification_compact.ctmpl @@ -0,0 +1,20 @@ +#ifndef __notification_compact +#define __notification_compact +static const char data_notification_compact[] = {0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X63,0X6F,0X6D,0X70,0X61,0X63,0X74,0X20,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X66,0X70,0X2D,0X63,0X6F,0X6D,0X70,0X61,0X63,0X74,0X2D,0X74,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6D,0X67,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X74,0X65,0X78,0X74,0X2D,0X67,0X72,0X6F,0X75,0X70,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X74,0X69,0X74,0X6C,0X65,0X3D,0X22,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X63,0X74,0X69,0X6F,0X6E,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X2D,0X73,0X74,0X61,0X74,0X73,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0}; +struct notification_compact_template {const char* avatar; +const char* idk; +const char* acct; +const char* display_name; +const char* action; +const char* action_item; +const char* idk2; +const char* content; +const char* stats; +}; +char* tmpl_gen_notification_compact(struct notification_compact_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_notification_compact, data->avatar?data->avatar:"", data->idk?data->idk:"", data->acct?data->acct:"", data->display_name?data->display_name:"", data->action?data->action:"", data->action_item?data->action_item:"", data->idk2?data->idk2:"", data->content?data->content:"", data->stats?data->stats:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/notification_compact.tmpl b/static/notification_compact.tmpl new file mode 100644 index 0000000..742c911 --- /dev/null +++ b/static/notification_compact.tmpl @@ -0,0 +1,18 @@ + + + + + +
    + + +
    + + {{%s:display_name}} + {{%s:action}} + {{%s:action_item}} + {{%s:idk2}} +
    +
    {{%s:content}}
    +
    {{%s:stats}}
    +
    diff --git a/static/notifications.ctmpl b/static/notifications.ctmpl new file mode 100644 index 0000000..cb2bc08 --- /dev/null +++ b/static/notifications.ctmpl @@ -0,0 +1,12 @@ +#ifndef __notifications +#define __notifications +static const char data_notifications[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X73,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct notifications_template {const char* notifications; +}; +char* tmpl_gen_notifications(struct notifications_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_notifications, data->notifications?data->notifications:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/notifications.tmpl b/static/notifications.tmpl new file mode 100644 index 0000000..93feac5 --- /dev/null +++ b/static/notifications.tmpl @@ -0,0 +1,3 @@ +
    + {{%s:notifications}} +
    diff --git a/static/notifications_embed.ctmpl b/static/notifications_embed.ctmpl new file mode 100644 index 0000000..ee3698c --- /dev/null +++ b/static/notifications_embed.ctmpl @@ -0,0 +1,15 @@ +#ifndef __notifications_embed +#define __notifications_embed +static const char data_notifications_embed[] = {0X3C,0X21,0X44,0X4F,0X43,0X54,0X59,0X50,0X45,0X20,0X68,0X74,0X6D,0X6C,0X3E,0XA,0X3C,0X68,0X74,0X6D,0X6C,0X3E,0XA,0X20,0X20,0X3C,0X68,0X65,0X61,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X6D,0X65,0X74,0X61,0X20,0X63,0X68,0X61,0X72,0X73,0X65,0X74,0X3D,0X22,0X75,0X74,0X66,0X2D,0X38,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X69,0X74,0X6C,0X65,0X3E,0X4E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X73,0X20,0X65,0X6D,0X62,0X65,0X64,0X3C,0X2F,0X74,0X69,0X74,0X6C,0X65,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X6E,0X6B,0X20,0X72,0X65,0X6C,0X3D,0X22,0X73,0X74,0X79,0X6C,0X65,0X73,0X68,0X65,0X65,0X74,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X74,0X65,0X78,0X74,0X2F,0X63,0X73,0X73,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X2F,0X25,0X73,0X25,0X73,0X2E,0X63,0X73,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X73,0X74,0X79,0X6C,0X65,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X68,0X74,0X6D,0X6C,0X2C,0X20,0X62,0X6F,0X64,0X79,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X7B,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X62,0X61,0X63,0X6B,0X67,0X72,0X6F,0X75,0X6E,0X64,0X2D,0X63,0X6F,0X6C,0X6F,0X72,0X3A,0X20,0X75,0X6E,0X73,0X65,0X74,0X3B,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X73,0X63,0X72,0X6F,0X6C,0X6C,0X62,0X61,0X72,0X2D,0X63,0X6F,0X6C,0X6F,0X72,0X3A,0X20,0X23,0X38,0X30,0X38,0X30,0X38,0X30,0X20,0X23,0X65,0X61,0X65,0X63,0X66,0X30,0X3B,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X73,0X63,0X72,0X6F,0X6C,0X6C,0X62,0X61,0X72,0X2D,0X77,0X69,0X64,0X74,0X68,0X3A,0X20,0X74,0X68,0X69,0X6E,0X3B,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X7D,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X74,0X79,0X6C,0X65,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X68,0X65,0X61,0X64,0X3E,0XA,0X20,0X20,0X3C,0X62,0X6F,0X64,0X79,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X2D,0X65,0X6D,0X62,0X65,0X64,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X2D,0X65,0X6D,0X62,0X65,0X64,0X2D,0X6E,0X6F,0X74,0X69,0X66,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X62,0X6F,0X64,0X79,0X3E,0XA,0X3C,0X2F,0X68,0X74,0X6D,0X6C,0X3E,0}; +struct notifications_embed_template {const char* theme; +const char* theme_var; +const char* navigation_box; +const char* notifications; +}; +char* tmpl_gen_notifications_embed(struct notifications_embed_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_notifications_embed, data->theme?data->theme:"", data->theme_var?data->theme_var:"", data->navigation_box?data->navigation_box:"", data->notifications?data->notifications:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/notifications_page.ctmpl b/static/notifications_page.ctmpl new file mode 100644 index 0000000..ea20fda --- /dev/null +++ b/static/notifications_page.ctmpl @@ -0,0 +1,13 @@ +#ifndef __notifications_page +#define __notifications_page +static const char data_notifications_page[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X6D,0X70,0X6C,0X65,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X68,0X31,0X3E,0X4E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X73,0X3C,0X2F,0X68,0X31,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6E,0X6F,0X74,0X69,0X66,0X69,0X63,0X61,0X74,0X69,0X6F,0X6E,0X73,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X25,0X73,0}; +struct notifications_page_template {const char* notifications; +const char* navigation; +}; +char* tmpl_gen_notifications_page(struct notifications_page_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_notifications_page, data->notifications?data->notifications:"", data->navigation?data->navigation:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/notifications_page.tmpl b/static/notifications_page.tmpl new file mode 100644 index 0000000..cb9cd55 --- /dev/null +++ b/static/notifications_page.tmpl @@ -0,0 +1,7 @@ +
    +

    Notifications

    +
    +
    + {{%s:notifications}} +
    +{{%s:navigation}} diff --git a/static/post.ctmpl b/static/post.ctmpl new file mode 100644 index 0000000..421ae3b --- /dev/null +++ b/static/post.ctmpl @@ -0,0 +1,14 @@ +#ifndef __post +#define __post +static const char data_post[] = {0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X63,0X72,0X65,0X61,0X74,0X65,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X20,0X65,0X6E,0X63,0X74,0X79,0X70,0X65,0X3D,0X22,0X6D,0X75,0X6C,0X74,0X69,0X70,0X61,0X72,0X74,0X2F,0X66,0X6F,0X72,0X6D,0X2D,0X64,0X61,0X74,0X61,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X62,0X6F,0X78,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X65,0X78,0X74,0X61,0X72,0X65,0X61,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X20,0X70,0X6C,0X61,0X63,0X65,0X68,0X6F,0X6C,0X64,0X65,0X72,0X3D,0X22,0X4A,0X75,0X73,0X74,0X20,0X6C,0X61,0X6E,0X64,0X65,0X64,0X20,0X69,0X6E,0X20,0X4E,0X2E,0X59,0X2E,0X22,0X20,0X72,0X6F,0X77,0X73,0X3D,0X22,0X35,0X22,0X20,0X74,0X61,0X62,0X69,0X6E,0X64,0X65,0X78,0X3D,0X22,0X31,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X65,0X78,0X74,0X61,0X72,0X65,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X66,0X6F,0X6F,0X74,0X65,0X72,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X66,0X6F,0X6F,0X74,0X65,0X72,0X2D,0X6C,0X65,0X66,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X65,0X6C,0X65,0X63,0X74,0X20,0X74,0X61,0X62,0X69,0X6E,0X64,0X65,0X78,0X3D,0X22,0X33,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X76,0X69,0X73,0X69,0X62,0X69,0X6C,0X69,0X74,0X79,0X22,0X20,0X69,0X64,0X3D,0X22,0X76,0X69,0X73,0X69,0X62,0X69,0X6C,0X69,0X74,0X79,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X70,0X75,0X62,0X6C,0X69,0X63,0X22,0X3E,0X50,0X75,0X62,0X6C,0X69,0X63,0X3C,0X2F,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X75,0X6E,0X6C,0X69,0X73,0X74,0X65,0X64,0X22,0X3E,0X55,0X6E,0X6C,0X69,0X73,0X74,0X65,0X64,0X3C,0X2F,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X70,0X72,0X69,0X76,0X61,0X74,0X65,0X22,0X3E,0X50,0X72,0X69,0X76,0X61,0X74,0X65,0X3C,0X2F,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X64,0X69,0X72,0X65,0X63,0X74,0X22,0X3E,0X44,0X69,0X72,0X65,0X63,0X74,0X3C,0X2F,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X6C,0X6F,0X63,0X61,0X6C,0X22,0X3E,0X4C,0X6F,0X63,0X61,0X6C,0X3C,0X2F,0X6F,0X70,0X74,0X69,0X6F,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X54,0X4F,0X44,0X4F,0X20,0X67,0X65,0X6E,0X65,0X72,0X61,0X74,0X65,0X20,0X6C,0X69,0X73,0X74,0X73,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X65,0X6C,0X65,0X63,0X74,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X66,0X69,0X6C,0X65,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X66,0X69,0X6C,0X65,0X22,0X20,0X74,0X61,0X62,0X69,0X6E,0X64,0X65,0X78,0X3D,0X22,0X34,0X22,0X20,0X6D,0X75,0X6C,0X74,0X69,0X70,0X6C,0X65,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X66,0X6F,0X6F,0X74,0X65,0X72,0X2D,0X72,0X69,0X67,0X68,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X50,0X6F,0X73,0X74,0X22,0X20,0X74,0X61,0X62,0X69,0X6E,0X64,0X65,0X78,0X3D,0X22,0X32,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X20,0X70,0X6F,0X73,0X74,0X2D,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0}; +struct post_template {const char* prefix; +const char* reply_input; +const char* content; +}; +char* tmpl_gen_post(struct post_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_post, data->prefix?data->prefix:"", data->reply_input?data->reply_input:"", data->content?data->content:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/quick_login.ctmpl b/static/quick_login.ctmpl new file mode 100644 index 0000000..f69f80a --- /dev/null +++ b/static/quick_login.ctmpl @@ -0,0 +1,15 @@ +#ifndef __quick_login +#define __quick_login +static const char data_quick_login[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X64,0X65,0X62,0X61,0X72,0X2D,0X6C,0X6F,0X67,0X69,0X6E,0X22,0X3E,0XA,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X6C,0X6F,0X67,0X69,0X6E,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X6F,0X72,0X6D,0X2D,0X67,0X72,0X6F,0X75,0X70,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X6C,0X6F,0X67,0X69,0X6E,0X2D,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3A,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X74,0X65,0X78,0X74,0X22,0X20,0X69,0X64,0X3D,0X22,0X6C,0X6F,0X67,0X69,0X6E,0X2D,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X6F,0X72,0X6D,0X2D,0X67,0X72,0X6F,0X75,0X70,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X61,0X62,0X65,0X6C,0X20,0X66,0X6F,0X72,0X3D,0X22,0X6C,0X6F,0X67,0X69,0X6E,0X2D,0X70,0X61,0X73,0X73,0X77,0X6F,0X72,0X64,0X22,0X3E,0X25,0X73,0X3A,0X20,0X3C,0X2F,0X6C,0X61,0X62,0X65,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X70,0X61,0X73,0X73,0X77,0X6F,0X72,0X64,0X22,0X20,0X69,0X64,0X3D,0X22,0X6C,0X6F,0X67,0X69,0X6E,0X2D,0X70,0X61,0X73,0X73,0X77,0X6F,0X72,0X64,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X70,0X61,0X73,0X73,0X77,0X6F,0X72,0X64,0X22,0X3E,0X3C,0X62,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X66,0X6F,0X72,0X6D,0X2D,0X67,0X72,0X6F,0X75,0X70,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct quick_login_template {const char* prefix; +const char* username; +const char* password; +const char* login; +}; +char* tmpl_gen_quick_login(struct quick_login_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_quick_login, data->prefix?data->prefix:"", data->username?data->username:"", data->password?data->password:"", data->login?data->login:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/reactions_btn.ctmpl b/static/reactions_btn.ctmpl new file mode 100644 index 0000000..56b69d3 --- /dev/null +++ b/static/reactions_btn.ctmpl @@ -0,0 +1,14 @@ +#ifndef __reactions_btn +#define __reactions_btn +static const char data_reactions_btn[] = {0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X61,0X20,0X74,0X61,0X72,0X67,0X65,0X74,0X3D,0X22,0X5F,0X70,0X61,0X72,0X65,0X6E,0X74,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X2F,0X72,0X65,0X61,0X63,0X74,0X23,0X69,0X64,0X2D,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X6F,0X69,0X6E,0X74,0X65,0X72,0X20,0X73,0X74,0X61,0X74,0X62,0X74,0X6E,0X20,0X72,0X65,0X61,0X63,0X74,0X2D,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X73,0X76,0X67,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X65,0X6D,0X6F,0X6A,0X69,0X2D,0X62,0X74,0X6E,0X22,0X20,0X78,0X6D,0X6C,0X6E,0X73,0X3D,0X22,0X68,0X74,0X74,0X70,0X3A,0X2F,0X2F,0X77,0X77,0X77,0X2E,0X77,0X33,0X2E,0X6F,0X72,0X67,0X2F,0X32,0X30,0X30,0X30,0X2F,0X73,0X76,0X67,0X22,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X30,0X22,0X20,0X68,0X65,0X69,0X67,0X68,0X74,0X3D,0X22,0X32,0X30,0X22,0X20,0X76,0X69,0X65,0X77,0X42,0X6F,0X78,0X3D,0X22,0X30,0X20,0X30,0X20,0X32,0X34,0X20,0X32,0X34,0X22,0X20,0X66,0X69,0X6C,0X6C,0X3D,0X22,0X6E,0X6F,0X6E,0X65,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X3D,0X22,0X23,0X30,0X30,0X30,0X30,0X30,0X30,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X63,0X61,0X70,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X6A,0X6F,0X69,0X6E,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X3E,0X3C,0X63,0X69,0X72,0X63,0X6C,0X65,0X20,0X63,0X78,0X3D,0X22,0X31,0X32,0X22,0X20,0X63,0X79,0X3D,0X22,0X31,0X32,0X22,0X20,0X72,0X3D,0X22,0X31,0X30,0X22,0X3E,0X3C,0X2F,0X63,0X69,0X72,0X63,0X6C,0X65,0X3E,0X3C,0X6C,0X69,0X6E,0X65,0X20,0X78,0X31,0X3D,0X22,0X38,0X22,0X20,0X79,0X31,0X3D,0X22,0X31,0X32,0X22,0X20,0X78,0X32,0X3D,0X22,0X31,0X36,0X22,0X20,0X79,0X32,0X3D,0X22,0X31,0X32,0X22,0X3E,0X3C,0X2F,0X6C,0X69,0X6E,0X65,0X3E,0X3C,0X2F,0X73,0X76,0X67,0X3E,0XA,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X3C,0X2F,0X74,0X64,0X3E,0}; +struct reactions_btn_template {const char* prefix; +const char* status_id; +const char* emoji_picker; +}; +char* tmpl_gen_reactions_btn(struct reactions_btn_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_reactions_btn, data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->status_id?data->status_id:"", data->emoji_picker?data->emoji_picker:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/repeat_svg.ctmpl b/static/repeat_svg.ctmpl new file mode 100644 index 0000000..52177d4 --- /dev/null +++ b/static/repeat_svg.ctmpl @@ -0,0 +1,5 @@ +#ifndef __repeat_svg +#define __repeat_svg +static const char data_repeat_svg[] = {0X3C,0X73,0X76,0X67,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X72,0X65,0X70,0X65,0X61,0X74,0X22,0X20,0X78,0X6D,0X6C,0X6E,0X73,0X3D,0X22,0X68,0X74,0X74,0X70,0X3A,0X2F,0X2F,0X77,0X77,0X77,0X2E,0X77,0X33,0X2E,0X6F,0X72,0X67,0X2F,0X32,0X30,0X30,0X30,0X2F,0X73,0X76,0X67,0X22,0X20,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X30,0X22,0X20,0X68,0X65,0X69,0X67,0X68,0X74,0X3D,0X22,0X32,0X30,0X22,0X20,0X76,0X69,0X65,0X77,0X42,0X6F,0X78,0X3D,0X22,0X30,0X20,0X30,0X20,0X32,0X34,0X20,0X32,0X34,0X22,0X20,0X66,0X69,0X6C,0X6C,0X3D,0X22,0X6E,0X6F,0X6E,0X65,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X3D,0X22,0X23,0X30,0X30,0X30,0X30,0X30,0X30,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X77,0X69,0X64,0X74,0X68,0X3D,0X22,0X32,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X63,0X61,0X70,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X20,0X73,0X74,0X72,0X6F,0X6B,0X65,0X2D,0X6C,0X69,0X6E,0X65,0X6A,0X6F,0X69,0X6E,0X3D,0X22,0X72,0X6F,0X75,0X6E,0X64,0X22,0X3E,0X3C,0X70,0X61,0X74,0X68,0X20,0X64,0X3D,0X22,0X4D,0X31,0X37,0X20,0X32,0X2E,0X31,0X6C,0X34,0X20,0X34,0X2D,0X34,0X20,0X34,0X22,0X2F,0X3E,0X3C,0X70,0X61,0X74,0X68,0X20,0X64,0X3D,0X22,0X4D,0X33,0X20,0X31,0X32,0X2E,0X32,0X76,0X2D,0X32,0X61,0X34,0X20,0X34,0X20,0X30,0X20,0X30,0X20,0X31,0X20,0X34,0X2D,0X34,0X68,0X31,0X32,0X2E,0X38,0X4D,0X37,0X20,0X32,0X31,0X2E,0X39,0X6C,0X2D,0X34,0X2D,0X34,0X20,0X34,0X2D,0X34,0X22,0X2F,0X3E,0X3C,0X70,0X61,0X74,0X68,0X20,0X64,0X3D,0X22,0X4D,0X32,0X31,0X20,0X31,0X31,0X2E,0X38,0X76,0X32,0X61,0X34,0X20,0X34,0X20,0X30,0X20,0X30,0X20,0X31,0X2D,0X34,0X20,0X34,0X48,0X34,0X2E,0X32,0X22,0X2F,0X3E,0X3C,0X2F,0X73,0X76,0X67,0X3E,0}; + +#endif diff --git a/static/repeat_svg.tmpl b/static/repeat_svg.tmpl new file mode 100644 index 0000000..6712353 --- /dev/null +++ b/static/repeat_svg.tmpl @@ -0,0 +1 @@ + diff --git a/static/scrobble.ctmpl b/static/scrobble.ctmpl new file mode 100644 index 0000000..cf6b8a9 --- /dev/null +++ b/static/scrobble.ctmpl @@ -0,0 +1,23 @@ +#ifndef __scrobble +#define __scrobble +static const char data_scrobble[] = {0X3C,0X64,0X69,0X76,0X20,0X69,0X64,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X69,0X73,0X74,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X66,0X70,0X2D,0X63,0X6F,0X6D,0X70,0X61,0X63,0X74,0X2D,0X74,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6D,0X67,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X66,0X70,0X2D,0X69,0X6D,0X67,0X2D,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X22,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X69,0X73,0X74,0X2D,0X69,0X6E,0X66,0X6F,0X2D,0X74,0X65,0X78,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X69,0X73,0X74,0X2D,0X61,0X63,0X74,0X69,0X76,0X69,0X74,0X79,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0X20,0X20,0X20,0X20,0X20,0X20,0XA,0X20,0X20,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0X20,0X20,0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X74,0X69,0X74,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X6B,0X65,0X79,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X76,0X61,0X6C,0X75,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X61,0X72,0X74,0X69,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X6B,0X65,0X79,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X76,0X61,0X6C,0X75,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X61,0X6C,0X62,0X75,0X6D,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X6B,0X65,0X79,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X76,0X61,0X6C,0X75,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X6C,0X65,0X6E,0X67,0X74,0X68,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X6B,0X65,0X79,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X63,0X72,0X6F,0X62,0X62,0X6C,0X65,0X2D,0X76,0X61,0X6C,0X75,0X65,0X22,0X3E,0X25,0X64,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct scrobble_template {const char* scrobble_id; +const char* avatar; +const char* username; +const char* activity; +const char* title_key; +const char* title; +const char* artist_key; +const char* artist; +const char* album_key; +const char* album; +const char* length_key; +int length; +}; +char* tmpl_gen_scrobble(struct scrobble_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_scrobble, data->scrobble_id?data->scrobble_id:"", data->avatar?data->avatar:"", data->username?data->username:"", data->activity?data->activity:"", data->title_key?data->title_key:"", data->title?data->title:"", data->artist_key?data->artist_key:"", data->artist?data->artist:"", data->album_key?data->album_key:"", data->album?data->album:"", data->length_key?data->length_key:"", data->length); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/search.ctmpl b/static/search.ctmpl new file mode 100644 index 0000000..19011a8 --- /dev/null +++ b/static/search.ctmpl @@ -0,0 +1,20 @@ +#ifndef __search +#define __search +static const char data_search[] = {0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X73,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X73,0X65,0X61,0X72,0X63,0X68,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X65,0X73,0X3F,0X71,0X3D,0X25,0X73,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X73,0X65,0X61,0X72,0X63,0X68,0X2F,0X61,0X63,0X63,0X6F,0X75,0X6E,0X74,0X73,0X3F,0X71,0X3D,0X25,0X73,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X73,0X65,0X61,0X72,0X63,0X68,0X2F,0X68,0X61,0X73,0X68,0X74,0X61,0X67,0X73,0X3F,0X71,0X3D,0X25,0X73,0X22,0X3E,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X74,0X61,0X62,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X20,0X25,0X73,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X62,0X75,0X74,0X74,0X6F,0X6E,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0XA,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X65,0X61,0X72,0X63,0X68,0X2D,0X72,0X65,0X73,0X75,0X6C,0X74,0X73,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct search_template {const char* prefix; +const char* query; +const char* statuses_active; +const char* statuses; +const char* accounts_active; +const char* accounts; +const char* hashtags_active; +const char* hashtags; +const char* results; +}; +char* tmpl_gen_search(struct search_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_search, data->prefix?data->prefix:"", data->query?data->query:"", data->statuses_active?data->statuses_active:"", data->statuses?data->statuses:"", data->prefix?data->prefix:"", data->query?data->query:"", data->accounts_active?data->accounts_active:"", data->accounts?data->accounts:"", data->prefix?data->prefix:"", data->query?data->query:"", data->hashtags_active?data->hashtags_active:"", data->hashtags?data->hashtags:"", data->results?data->results:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/status.ctmpl b/static/status.ctmpl new file mode 100644 index 0000000..d90cbd7 --- /dev/null +++ b/static/status.ctmpl @@ -0,0 +1,32 @@ +#ifndef __status +#define __status +static const char data_status[] = {0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X69,0X64,0X3D,0X22,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X20,0X25,0X73,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X66,0X70,0X2D,0X74,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6D,0X67,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X6F,0X73,0X74,0X65,0X72,0X2D,0X73,0X74,0X61,0X74,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X40,0X25,0X73,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X6C,0X69,0X67,0X6E,0X65,0X6E,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6D,0X65,0X6E,0X75,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X20,0X73,0X74,0X61,0X74,0X75,0X73,0X2D,0X76,0X69,0X73,0X69,0X62,0X69,0X6C,0X69,0X74,0X79,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6D,0X65,0X6E,0X75,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X2F,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X74,0X79,0X70,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X6D,0X75,0X74,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X6D,0X65,0X6E,0X75,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X2F,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X74,0X79,0X70,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X70,0X69,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X6D,0X65,0X6E,0X75,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X74,0X79,0X70,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X62,0X6F,0X6F,0X6B,0X6D,0X61,0X72,0X6B,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X6D,0X65,0X6E,0X75,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0}; +struct status_template {const char* status_id; +const char* focused; +const char* notif_info; +const char* avatar; +const char* username; +const char* prefix; +const char* acct; +const char* visibility; +const char* unmute; +const char* unmute_btn; +const char* unpin; +const char* unpin_btn; +const char* unbookmark; +const char* unbookmark_btn; +const char* delete_status; +const char* in_reply_to_str; +const char* status_content; +const char* attachments; +const char* interactions; +const char* emoji_reactions; +const char* interaction_btns; +}; +char* tmpl_gen_status(struct status_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_status, data->status_id?data->status_id:"", data->focused?data->focused:"", data->notif_info?data->notif_info:"", data->avatar?data->avatar:"", data->username?data->username:"", data->prefix?data->prefix:"", data->acct?data->acct:"", data->acct?data->acct:"", data->visibility?data->visibility:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->unmute?data->unmute:"", data->unmute_btn?data->unmute_btn:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->unpin?data->unpin:"", data->unpin_btn?data->unpin_btn:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->unbookmark?data->unbookmark:"", data->unbookmark_btn?data->unbookmark_btn:"", data->delete_status?data->delete_status:"", data->in_reply_to_str?data->in_reply_to_str:"", data->status_content?data->status_content:"", data->attachments?data->attachments:"", data->interactions?data->interactions:"", data->emoji_reactions?data->emoji_reactions:"", data->interaction_btns?data->interaction_btns:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/status.tmpl b/static/status.tmpl new file mode 100644 index 0000000..3ed0ea8 --- /dev/null +++ b/static/status.tmpl @@ -0,0 +1,50 @@ + + {{ %s : notif_info }} + + + + +
    + + +
    + {{%s:username}} + {{%s:acct}} + + + +
    + {{%s:in_reply_to_str}} + + {{%s:status_content}} + + {{%s:attachments}} + {{%s:interactions}} + {{%s:emoji_reactions}} + {{%s:interaction_btns}} +
    diff --git a/static/status_interaction_profile.ctmpl b/static/status_interaction_profile.ctmpl new file mode 100644 index 0000000..bc4a864 --- /dev/null +++ b/static/status_interaction_profile.ctmpl @@ -0,0 +1,13 @@ +#ifndef __status_interaction_profile +#define __status_interaction_profile +static const char data_status_interaction_profile[] = {0X3C,0X69,0X6D,0X67,0X20,0X74,0X69,0X74,0X6C,0X65,0X3D,0X22,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X66,0X70,0X2D,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X69,0X6F,0X6E,0X22,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0}; +struct status_interaction_profile_template {const char* acct; +const char* avatar; +}; +char* tmpl_gen_status_interaction_profile(struct status_interaction_profile_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_status_interaction_profile, data->acct?data->acct:"", data->avatar?data->avatar:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/status_interactions.ctmpl b/static/status_interactions.ctmpl new file mode 100644 index 0000000..bae6a6d --- /dev/null +++ b/static/status_interactions.ctmpl @@ -0,0 +1,14 @@ +#ifndef __status_interactions +#define __status_interactions +static const char data_status_interactions[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X2D,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X69,0X6F,0X6E,0X73,0X22,0X3E,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X2D,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X69,0X6F,0X6E,0X73,0X2D,0X6C,0X61,0X62,0X65,0X6C,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X46,0X61,0X76,0X6F,0X75,0X72,0X69,0X74,0X65,0X73,0X20,0X63,0X6F,0X75,0X6E,0X74,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X3C,0X21,0X2D,0X2D,0X20,0X52,0X65,0X62,0X6C,0X6F,0X67,0X20,0X63,0X6F,0X75,0X6E,0X74,0X20,0X2D,0X2D,0X3E,0XA,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X2D,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X69,0X6F,0X6E,0X73,0X2D,0X70,0X66,0X70,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct status_interactions_template {const char* favourites_count; +const char* reblogs_count; +const char* users; +}; +char* tmpl_gen_status_interactions(struct status_interactions_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_status_interactions, data->favourites_count?data->favourites_count:"", data->reblogs_count?data->reblogs_count:"", data->users?data->users:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/status_interactions_label.ctmpl b/static/status_interactions_label.ctmpl new file mode 100644 index 0000000..f268f5f --- /dev/null +++ b/static/status_interactions_label.ctmpl @@ -0,0 +1,13 @@ +#ifndef __status_interactions_label +#define __status_interactions_label +static const char data_status_interactions_label[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X68,0X65,0X61,0X64,0X65,0X72,0X2D,0X62,0X74,0X6E,0X20,0X62,0X74,0X6E,0X22,0X3E,0XA,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X68,0X65,0X61,0X64,0X65,0X72,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0X25,0X64,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct status_interactions_label_template {const char* header; +int value; +}; +char* tmpl_gen_status_interactions_label(struct status_interactions_label_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_status_interactions_label, data->header?data->header:"", data->value); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/test.ctmpl b/static/test.ctmpl new file mode 100644 index 0000000..bc777d2 --- /dev/null +++ b/static/test.ctmpl @@ -0,0 +1,19 @@ +#ifndef __test +#define __test +static const char data_test[] = {0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X69,0X6D,0X70,0X6C,0X65,0X2D,0X70,0X61,0X67,0X65,0X22,0X3E,0XA,0X20,0X20,0X3C,0X68,0X31,0X3E,0X54,0X65,0X73,0X74,0X20,0X70,0X61,0X67,0X65,0X3C,0X2F,0X68,0X31,0X3E,0XA,0X20,0X20,0X3C,0X70,0X3E,0X54,0X65,0X73,0X74,0X20,0X79,0X6F,0X75,0X72,0X20,0X6E,0X67,0X69,0X6E,0X78,0X2F,0X61,0X70,0X61,0X63,0X68,0X65,0X20,0X61,0X6E,0X64,0X20,0X62,0X72,0X6F,0X77,0X73,0X65,0X72,0X20,0X68,0X65,0X72,0X65,0X3C,0X2F,0X70,0X3E,0XA,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X74,0X65,0X73,0X74,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X67,0X65,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X76,0X61,0X6C,0X75,0X65,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X74,0X65,0X78,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X47,0X45,0X54,0X22,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0XA,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X74,0X65,0X73,0X74,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X76,0X61,0X6C,0X75,0X65,0X22,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X74,0X65,0X78,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X50,0X4F,0X53,0X54,0X22,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0XA,0X20,0X20,0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X69,0X64,0X3D,0X22,0X65,0X6E,0X76,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X72,0X65,0X73,0X65,0X6E,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X68,0X3E,0X3C,0X62,0X3E,0X45,0X4E,0X56,0X3C,0X2F,0X62,0X3E,0X3C,0X2F,0X74,0X68,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X68,0X3E,0X3C,0X62,0X3E,0X56,0X61,0X6C,0X75,0X65,0X3C,0X2F,0X62,0X3E,0X3C,0X2F,0X74,0X68,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X48,0X54,0X54,0X50,0X5F,0X43,0X4F,0X4F,0X4B,0X49,0X45,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X50,0X41,0X54,0X48,0X5F,0X49,0X4E,0X46,0X4F,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X51,0X55,0X45,0X52,0X59,0X5F,0X53,0X54,0X52,0X49,0X4E,0X47,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X52,0X45,0X51,0X55,0X45,0X53,0X54,0X5F,0X4D,0X45,0X54,0X48,0X4F,0X44,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X53,0X43,0X52,0X49,0X50,0X54,0X5F,0X4E,0X41,0X4D,0X45,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X48,0X54,0X54,0X50,0X5F,0X52,0X45,0X46,0X45,0X52,0X45,0X52,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X48,0X54,0X54,0X50,0X5F,0X55,0X53,0X45,0X52,0X5F,0X41,0X47,0X45,0X4E,0X54,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X43,0X4F,0X4E,0X54,0X45,0X4E,0X54,0X5F,0X4C,0X45,0X4E,0X47,0X54,0X48,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X3E,0X25,0X73,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0XA,0X3C,0X2F,0X64,0X69,0X76,0X3E,0}; +struct test_template {const char* HTTP_COOKIE; +const char* PATH_INFO; +const char* QUERY_STRING; +const char* REQUEST_METHOD; +const char* SCRIPT_NAME; +const char* HTTP_REFERER; +const char* HTTP_USER_AGENT; +const char* CONTENT_LENGTH; +}; +char* tmpl_gen_test(struct test_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_test, data->HTTP_COOKIE?data->HTTP_COOKIE:"", data->PATH_INFO?data->PATH_INFO:"", data->QUERY_STRING?data->QUERY_STRING:"", data->REQUEST_METHOD?data->REQUEST_METHOD:"", data->SCRIPT_NAME?data->SCRIPT_NAME:"", data->HTTP_REFERER?data->HTTP_REFERER:"", data->HTTP_USER_AGENT?data->HTTP_USER_AGENT:"", data->CONTENT_LENGTH?data->CONTENT_LENGTH:""); +if (size) *size = s; +return ret; +} +#endif