|
@@ -93,7 +93,7 @@ static xs_str *format_line(const char *line, xs_list **attach)
|
|
|
"\\*\\*?\\*?[^\\*]+\\*?\\*?\\*" "|"
|
|
|
"!\\[[^]]+\\]\\([^\\)]+\\)" "|"
|
|
|
"\\[[^]]+\\]\\([^\\)]+\\)" "|"
|
|
|
- "https?:/" "/[^[:space:]]+"
|
|
|
+ "[a-z]+?:/" "/[^[:space:]]+"
|
|
|
")");
|
|
|
int n = 0;
|
|
|
|
|
@@ -133,29 +133,6 @@ static xs_str *format_line(const char *line, xs_list **attach)
|
|
|
s = xs_str_cat(s, s2);
|
|
|
}
|
|
|
else
|
|
|
- if (xs_startswith(v, "http")) {
|
|
|
- xs *u = xs_replace(v, "#", "#");
|
|
|
- xs *v2 = xs_strip_chars_i(xs_dup(u), ".,)");
|
|
|
-
|
|
|
- const char *mime = xs_mime_by_ext(v2);
|
|
|
-
|
|
|
- if (attach != NULL && xs_startswith(mime, "image/")) {
|
|
|
-
|
|
|
- xs *d = xs_dict_new();
|
|
|
-
|
|
|
- d = xs_dict_append(d, "mediaType", mime);
|
|
|
- d = xs_dict_append(d, "url", v2);
|
|
|
- d = xs_dict_append(d, "name", "");
|
|
|
- d = xs_dict_append(d, "type", "Image");
|
|
|
-
|
|
|
- *attach = xs_list_append(*attach, d);
|
|
|
- }
|
|
|
- else {
|
|
|
- xs *s1 = xs_fmt("<a href=\"%s\" target=\"_blank\">%s</a>", v2, u);
|
|
|
- s = xs_str_cat(s, s1);
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
if (*v == '[') {
|
|
|
|
|
|
xs *w = xs_strip_chars_i(xs_replace(v, "#", "#"), "[)");
|
|
@@ -200,6 +177,29 @@ static xs_str *format_line(const char *line, xs_list **attach)
|
|
|
else
|
|
|
s = xs_str_cat(s, v);
|
|
|
}
|
|
|
+ else
|
|
|
+ if (xs_str_in(v, ":/" "/") != -1) {
|
|
|
+ xs *u = xs_replace(v, "#", "#");
|
|
|
+ xs *v2 = xs_strip_chars_i(xs_dup(u), ".,)");
|
|
|
+
|
|
|
+ const char *mime = xs_mime_by_ext(v2);
|
|
|
+
|
|
|
+ if (attach != NULL && xs_startswith(mime, "image/")) {
|
|
|
+
|
|
|
+ xs *d = xs_dict_new();
|
|
|
+
|
|
|
+ d = xs_dict_append(d, "mediaType", mime);
|
|
|
+ d = xs_dict_append(d, "url", v2);
|
|
|
+ d = xs_dict_append(d, "name", "");
|
|
|
+ d = xs_dict_append(d, "type", "Image");
|
|
|
+
|
|
|
+ *attach = xs_list_append(*attach, d);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ xs *s1 = xs_fmt("<a href=\"%s\" target=\"_blank\">%s</a>", v2, u);
|
|
|
+ s = xs_str_cat(s, s1);
|
|
|
+ }
|
|
|
+ }
|
|
|
else
|
|
|
s = xs_str_cat(s, v);
|
|
|
}
|