static gint lua_html_get_images (lua_State *L) { struct html_content *hc = lua_check_html (L, 1); struct html_image *img; guint i; if (hc != NULL) { lua_newtable (L); if (hc->images && hc->images->len > 0) { for (i = 0; i < hc->images->len; i ++) { img = g_ptr_array_index (hc->images, i); lua_html_push_image (L, img); lua_rawseti (L, -2, i + 1); } } else { lua_pushnil (L); } } else { lua_pushnil (L); } return 1; }
static gint lua_html_tag_get_extra (lua_State *L) { struct html_tag *tag = lua_check_html_tag (L, 1); struct html_image *img; struct rspamd_url **purl; if (tag) { if (tag->extra) { if (tag->id == Tag_A || tag->id == Tag_IFRAME) { /* For A that's URL */ purl = lua_newuserdata (L, sizeof (gpointer)); *purl = tag->extra; rspamd_lua_setclass (L, "rspamd{url}", -1); } else if (tag->id == Tag_IMG) { img = tag->extra; lua_html_push_image (L, img); } else { /* Unknown extra ? */ lua_pushnil (L); } } else { lua_pushnil (L); } } else { lua_error (L); } return 1; }