Module:AVBrandList

Revision as of 21:13, 4 February 2026 by Arclight-MCP-Bot (talk | contribs) (Create module to dynamically generate AV device brand list from semantic query (via create-page on MediaWiki MCP Server))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

-- Module:AVBrandList -- Dynamically generates a list of AV device brand buttons by querying -- all unique brands from the AV devices category.

local p = {}

local function trim(s) if s == nil then return nil end s = tostring(s) s = s:gsub('^%s+', ):gsub('%s+$', ) if s == then return nil end return s end

function p.list(frame) -- Query all AV devices and get their brands -- Using broadtable format for easier parsing local queryWikitext = '-\n' .. ': Aiwa AV-50M, -\n' .. ': Aiwa AV-70M, -\n' .. ': Alba VCP 2000, -\n' .. ': Baird 8922, -\n' .. ': Canopus ADVC-300, -\n' .. ': Category maintenance, -\n' .. ': Denon AVR-5805, -\n' .. ': Digital Processing Systems DPS-210, -\n' .. ': Digital Processing Systems DPS-220, -\n' .. ': Digital Processing Systems DPS-235, -\n' .. ': Digital Processing Systems DPS-245, -\n' .. ': Digital Processing Systems DPS-265, -\n' .. ': Digital Processing Systems DPS-270, -\n' .. ': Digital Processing Systems DPS-275, -\n' .. ': Digital Processing Systems DPS-290, -\n' .. ': Digital Processing Systems DPS-295, -\n' .. ': Digital Processing Systems DPS-465, -\n' .. ': Digital Processing Systems DPS-470, -\n' .. ': Digital Processing Systems Personal TBC IV, -\n' .. ': Edirol VMC-1, -\n' .. ': Emerson VCP660, -\n' .. ': Emerson VCP661, -\n' .. ': Emerson VCP662, -\n' .. ': Emerson VCP663, -\n' .. ': Emerson VCP664, -\n' .. ': Emerson VCP665, -\n' .. ': Emerson VCP675, -\n' .. ': Emerson VCP700, -\n' .. ': Emerson VCR650, -\n' .. ': Emerson VCR754, -\n' .. ': Emerson VCR755, -\n' .. ': Emerson VCR765, -\n' .. ': Emerson VCR765N, -\n' .. ': Emerson VCR800, -\n' .. ': Emerson VCR801, -\n' .. ': Emerson VCR850, -\n' .. ': Emerson VCR870, -\n' .. ': Emerson VCR870H, -\n' .. ': Emerson VCR872, -\n' .. ': Emerson VCR873, -\n' .. ': Emerson VCR874, -\n' .. ': Emerson VCR875, -\n' .. ': Emerson VCR900, -\n' .. ': Emerson VCR910, -\n' .. ': Emerson VCR920, -\n' .. ': Emerson VCR950, -\n' .. ': Emerson VCR951, -\n' .. ': Emerson VCR951A, -\n' .. ': Emerson VCR952, -\n' .. ': Emerson VCR953, -\n' .. ': Emerson VCR964, -\n' .. ': Emerson VCR964N, -\n' .. ': Emerson VCR988, -\n' .. ': Emerson VCS955H, -\n' .. ': Emerson VCS966, -\n' .. ': Emerson VCS966A, -\n' .. ': Emerson VCS977, -\n' .. ': Ensemble Designs BrightEye 75, -\n' .. ': FOR-A FA-1010, -\n' .. ': FOR-A FA-120, -\n' .. ': FOR-A FA-125, -\n' .. ': FOR-A FA-128, -\n' .. ': FOR-A FA-140, -\n' .. ': FOR-A FA-147, -\n' .. ': FOR-A FA-30, -\n' .. ': FOR-A FA-300, -\n' .. ': FOR-A FA-310, -\n' .. ': FOR-A FA-330, -\n' .. ': FOR-A FA-350, -\n' .. ': FOR-A FA-360, -\n' .. ': FOR-A FA-370, -\n' .. ': FOR-A FA-390, -\n' .. ': FOR-A FA-395, -\n' .. ': FOR-A FA-395A, -\n' .. ': FOR-A FA-400, -\n' .. ': FOR-A FA-410P, -\n' .. ': FOR-A FA-450, -\n' .. ': FOR-A FA-505, -\n' .. ': FOR-A FA-510, -\n' .. ': FOR-A FA-710, -\n' .. ': FOR-A FA-800, -\n' .. ': FOR-A FA-810, -\n' .. ': FOR-A FA-820, -\n' .. ': FOR-A FA-830, -\n' .. ': FOR-A FA-9000, -\n' .. ': FOR-A FA-9100, -\n' .. ': FOR-A FA-9500, -\n' .. ': FOR-A FA-9600, -\n' .. ': FOR-A UB-102, -\n' .. ': FOR-A UPI-100MV, -\n' .. ': Ferguson 3V01, -\n' .. ': Ferguson 8922, -\n' .. ': Fisher VBS-7000, -\n' .. ': Fisher VBS-9000, -\n' .. ': General VG-200B, -\n' .. ': General VG-240A, -\n' .. ': Hitachi VT-1100A, -\n' .. ': Hitachi VT-1110A, -\n' .. ': Hitachi VT-11A, -\n' .. ': Hitachi VT-1200A, -\n' .. ': Hitachi VT-12AX, -\n' .. ': Hitachi VT-1310A, -\n' .. ': Hitachi VT-1315A, -\n' .. ': Hitachi VT-1350A, -\n' .. ': Hitachi VT-1370A, -\n' .. ': Hitachi VT-1400A, -\n' .. ': Hitachi VT-1410A, -\n' .. ': Hitachi VT-1430A, -\n' .. ': Hitachi VT-1450A, -\n' .. ': Hitachi VT-1570A, -\n' .. ': Hitachi VT-15A, -\n' .. ': Hitachi VT-16A, -\n' .. ': Hitachi VT-1710A, -\n' .. ': Hitachi VT-1720A, -\n' .. ': Hitachi VT-1800A, -\n' .. ': Hitachi VT-18A, -\n' .. ': Hitachi VT-19A, -\n' .. ': Hitachi VT-2000A, -\n' .. ': Hitachi VT-2050A, -\n' .. ': Hitachi VT-2130A, -\n' .. ': Hitachi VT-2200A, -\n' .. ': Hitachi VT-2500A, -\n' .. ': Hitachi VT-2600A, -\n' .. ': Hitachi VT-2700A, -\n' .. ': Hitachi VT-3000A, -\n' .. ': Hitachi VT-33A, -\n' .. ': Hitachi VT-3400A, -\n' .. ': Hitachi VT-34A, -\n' .. ': Hitachi VT-35A, -\n' .. ': Hitachi VT-43AY, -\n' .. ': Hitachi VT-5600A, -\n' .. ': Hitachi VT-60A, -\n' .. ': Hitachi VT-62A, -\n' .. ': Hitachi VT-63A, -\n' .. ': Hitachi VT-64A, -\n' .. ': Hitachi VT-65A, -\n' .. ': Hitachi VT-71A, -\n' .. ': Hitachi VT-74AY, -\n' .. ': Hitachi VT-88A, -\n' .. ': Hitachi VT-89A, -\n' .. ': Hitachi VT-9100A, -\n' .. ': Hitachi VT-9500A, -\n' .. ': Hitachi VT-9700A, -\n' .. ': Hitachi VT-9710A, -\n' .. ': JCPenney 686-5037, -\n' .. ': JCPenney 686-5053, -\n' .. ': JCPenney 686-5066, -\n' .. ': JCPenney 686-6071, -\n' .. ': JVC AH-7200U, -\n' .. ': JVC AH-7500U, -\n' .. ': JVC AH-8500U, -\n' .. ': JVC BR-7110U, -\n' .. ': JVC BR-S611U, -\n' .. ': JVC HR-2200 EK, -\n' .. ': JVC HR-2200U, -\n' .. ': JVC HR-2650U, -\n' .. ': JVC HR-3300, -\n' .. ': JVC HR-3300U, -\n' .. ': JVC HR-4100 EG, -\n' .. ': JVC HR-6700U, -\n' .. ': JVC HR-7100U, -\n' .. ': JVC HR-7200U, -\n' .. ': JVC HR-7300U, -\n' .. ': JVC HR-7650U, -\n' .. ': JVC HR-C3, -\n' .. ': JVC HR-D120U, -\n' .. ': JVC HR-D130U, -\n' .. ': JVC HR-D140U, -\n' .. ': JVC HR-D142U, -\n' .. ': JVC HR-D150U, -\n' .. ': JVC HR-D151U, -\n' .. ': JVC HR-D170U, -\n' .. ': JVC HR-D180U, -\n' .. ': JVC HR-D200U, -\n' .. ': JVC HR-D210U, -\n' .. ': JVC HR-D217U, -\n' .. ': JVC HR-D220U, -\n' .. ': JVC HR-D225U, -\n' .. ': JVC HR-D230U, -\n' .. ': JVC HR-D237U, -\n' .. ': JVC HR-D310U, -\n' .. ': JVC HR-D320U, -\n' .. ': JVC HR-D370U, -\n' .. ': JVC HR-D400U, -\n' .. ': JVC HR-D410U, -\n' .. ': JVC HR-D440U, -\n' .. ': JVC HR-D470U, -\n' .. ': JVC HR-D515U, -\n' .. ': JVC HR-D520U, -\n' .. ': JVC HR-D530U, -\n' .. ': JVC HR-D566U, -\n' .. ': JVC HR-D570U, -\n' .. ': JVC HR-D600U, -\n' .. ': JVC HR-D610U, -\n' .. ': JVC HR-D620U, -\n' .. ': JVC HR-D700U, -\n' .. ': JVC HR-D725U, -\n' .. ': JVC HR-D750U, -\n' .. ': JVC HR-D756U, -\n' .. ': JVC HR-D830U, -\n' .. ': JVC HR-S10000U, -\n' .. ': JVC HR-S2901U, -\n' .. ': JVC HR-S3800U, -\n' .. ': JVC HR-S3901U, -\n' .. ': JVC HR-S5000U, -\n' .. ': JVC HR-S5500U, -\n' .. ': JVC HR-S6600U, -\n' .. ': JVC HR-S7000U, -\n' .. ': JVC HR-S8000U, -\n' .. ': JVC KM-F250, -\n' .. ': JVC SR-DVM600US, -\n' .. ': JVC SR-HD1250US, -\n' .. ': JVC SR-HD1350US, -\n' .. ': JVC SR-HD1500US, -\n' .. ': JVC SR-HD1700US, -\n' .. ': JVC SR-HD2500US, -\n' .. ': JVC SR-HD2700US, -\n' .. ': JVC SR-MV30U, -\n' .. ': JVC SR-MV45US, -\n' .. ': JVC SR-MV55US, -\n' .. ': JVC SR-W320U, -\n' .. ': JVC SR-W5U, -\n' .. ': JVC SR-W7U, -\n' .. ': Leitch DPS-475, -\n' .. ': Leitch DPS-575, -\n' .. ': Magnasonic MVC 700, -\n' .. ': Magnasonic MVC 710, -\n' .. ': Magnavox VR1260AT01, -\n' .. ': Magnavox VR8200BR01, -\n' .. ': Magnavox VR8306BK01, -\n' .. ': Magnavox VR8400BK01, -\n' .. ': Magnavox VR8405SL01, -\n' .. ': Magnavox VR8416SL01, -\n' .. ': Magnavox VR8445SL01, -\n' .. ': Magnavox VR8465SL01, -\n' .. ': Magnavox VR8520SL01, -\n' .. ': Magnavox VR8525GY01, -\n' .. ': Magnavox VR9520AT01, -\n' .. ': Magnavox VR9560AT01, -\n' .. ': Magnavox VR9670AT01, -\n' .. ': Magnavox VR9720AT01, -\n' .. ': Marantz VR 200, -\n' .. ': Memorex 16-408, -\n' .. ': Memorex 16-517, -\n' .. ': Memorex 16-523, -\n' .. ': Memorex 16-524, -\n' .. ': Memorex 16-525, -\n' .. ': Memorex 16-526, -\n' .. ': Memorex 16-529, -\n' .. ': Memorex 16-530, -\n' .. ': Memorex 16-531, -\n' .. ': Memorex 16-532, -\n' .. ': Memorex 16-533, -\n' .. ': Memorex 16-534, -\n' .. ': Memorex 16-536, -\n' .. ': Memorex 16-618, -\n' .. ': Memorex 16-619, -\n' .. ': Memorex 16-620, -\n' .. ': Memorex 16-621, -\n' .. ': Memorex 16-622, -\n' .. ': Memorex 16-623, -\n' .. ': Memorex 16-654, -\n' .. ': Memorex 16-655, -\n' .. ': Memorex 16-705, -\n' .. ': Memorex 16-706, -\n' .. ': Mitsubishi HS-300UR, -\n' .. ': Mitsubishi HS-301UR, -\n' .. ': Mitsubishi HS-302U, -\n' .. ': Mitsubishi HS-303UR, -\n' .. ': Mitsubishi HS-304UR, -\n' .. ': Mitsubishi HS-305UR, -\n' .. ': Mitsubishi HS-3061UR, -\n' .. ': Mitsubishi HS-306UR, -\n' .. ': Mitsubishi HS-310U, -\n' .. ': Mitsubishi HS-3161UR, -\n' .. ': Mitsubishi HS-316UR, -\n' .. ': Mitsubishi HS-3173UR, -\n' .. ': Mitsubishi HS-317UR, -\n' .. ': Mitsubishi HS-3183UR, -\n' .. ': Mitsubishi HS-318UR, -\n' .. ': Mitsubishi HS-319UR, -\n' .. ': Mitsubishi HS-320UR, -\n' .. ': Mitsubishi HS-3281UR, -\n' .. ': Mitsubishi HS-328UR, -\n' .. ': Mitsubishi HS-329UR, -\n' .. ': Mitsubishi HS-330UR, -\n' .. ': Mitsubishi HS-337UR, -\n' .. ': Mitsubishi HS-3381UR, -\n' .. ': Mitsubishi HS-338UR, -\n' .. ': Mitsubishi HS-3391UR, -\n' .. ': Mitsubishi HS-3392UR, -\n' .. ': Mitsubishi HS-3393UR, -\n' .. ': Mitsubishi HS-339UR, -\n' .. ': Mitsubishi HS-347UR, -\n' .. ': Mitsubishi HS-348UR, -\n' .. ': Mitsubishi HS-349UR, -\n' .. ': Mitsubishi HS-359UR, -\n' .. ': Mitsubishi HS-400UR, -\n' .. ': Mitsubishi HS-402UR, -\n' .. ': Mitsubishi HS-410UR, -\n' .. ': Mitsubishi HS-411UR, -\n' .. ': Mitsubishi HS-412UR, -\n' .. ': Mitsubishi HS-413UR, -\n' .. ': Mitsubishi HS-421UR, -\n' .. ': Mitsubishi HS-422UR, -\n' .. ': Mitsubishi HS-423UR, -\n' .. ': Mitsubishi HS-430UR, -\n' .. ': Mitsubishi HS-700UR, -\n' .. ': Mitsubishi HS-710UR, -\n' .. ': Mitsubishi HS-U448, -\n' .. ': Mitsubishi HS-U780, -\n' .. ': NEC BM-11EU, -\n' .. ': NEC BM-22EU, -\n' .. ': NEC BM-55EU, -\n' .. ': NEC PVC-2300, -\n' .. ': NEC PVC-700, -\n' .. ': NEC PVC-740, -\n' .. ': NEC PVC-764, -\n' .. ': NEC VC-731E, -\n' .. ': NEC VC-734E, -\n' .. ': NEC VC-737E, -\n' .. ': NEC VC-738E, -\n' .. ': NEC VC-739E, -\n' .. ': NEC VC-N20EU, -\n' .. ': NEC VC-N40EU, -\n' .. ': NEC VC-N65EU, -\n' .. ': NEC VC-N70EU, -\n' .. ': NEC VC-P1000E, -\n' .. ': Panasonic AG-1970P, -\n' .. ': Panasonic AG-1980P, -\n' .. ': Panasonic AG-5710P, -\n' .. ': Panasonic AG-7750, -\n' .. ': Panasonic AG-DS840P, -\n' .. ': Panasonic DMR-E10, -\n' .. ': Panasonic DMR-E20, -\n' .. ': Panasonic DMR-E30, -\n' .. ': Panasonic DMR-E50, -\n' .. ': Panasonic DMR-E55, -\n' .. ': Panasonic DMR-E60, -\n' .. ': Panasonic DMR-E80, -\n' .. ': Panasonic DMR-E85, -\n' .. ': Panasonic DMR-EH50, -\n' .. ': Panasonic DMR-EH55, -\n' .. ': Panasonic DMR-ES10, -\n' .. ': Panasonic DMR-ES15, -\n' .. ': Panasonic DMR-ES25, -\n' .. ': Panasonic DMR-HS2, -\n' .. ': Panasonic DMR-T2020, -\n' .. ': Panasonic DMR-T3030, -\n' .. ': Panasonic DMR-T3040, -\n' .. ': Panasonic NV-8600B, -\n' .. ': Panasonic NV-FS200, -\n' .. ': Panasonic PV-1000, -\n' .. ': Panasonic PV-1100, -\n' .. ': Panasonic PV-1200, -\n' .. ': Panasonic PV-1210, -\n' .. ': Panasonic PV-1220, -\n' .. ': Panasonic PV-1222, -\n' .. ': Panasonic PV-1225, -\n' .. ': Panasonic PV-1230, -\n' .. ': Panasonic PV-1231R, -\n' .. ': Panasonic PV-1265, -\n' .. ': Panasonic PV-1270, -\n' .. ': Panasonic PV-1275, -\n' .. ': Panasonic PV-1300, -\n' .. ': Panasonic PV-1310, -\n' .. ': Panasonic PV-1320, -\n' .. ': Panasonic PV-1321, -\n' .. ': Panasonic PV-1330, -\n' .. ': Panasonic PV-1330R, -\n' .. ': Panasonic PV-1331R, -\n' .. ': Panasonic PV-1332, -\n' .. ': Panasonic PV-1334R, -\n' .. ': Panasonic PV-1335, -\n' .. ': Panasonic PV-1340, -\n' .. ': Panasonic PV-1360, -\n' .. ': Panasonic PV-1361, -\n' .. ': Panasonic PV-1363, -\n' .. ': Panasonic PV-1364, -\n' .. ': Panasonic PV-1370, -\n' .. ': Panasonic PV-1400, -\n' .. ': Panasonic PV-1430, -\n' .. ': Panasonic PV-1442, -\n' .. ': Panasonic PV-1461, -\n' .. ': Panasonic PV-1470, -\n' .. ': Panasonic PV-1500, -\n' .. ': Panasonic PV-1510, -\n' .. ': Panasonic PV-1520, -\n' .. ': Panasonic PV-1525, -\n' .. ': Panasonic PV-1530, -\n' .. ': Panasonic PV-1535, -\n' .. ': Panasonic PV-1540, -\n' .. ': Panasonic PV-1545, -\n' .. ': Panasonic PV-1563, -\n' .. ': Panasonic PV-1600, -\n' .. ': Panasonic PV-1630, -\n' .. ': Panasonic PV-1631M, -\n' .. ': Panasonic PV-1640, -\n' .. ': Panasonic PV-1650, -\n' .. ': Panasonic PV-1720, -\n' .. ': Panasonic PV-1730, -\n' .. ': Panasonic PV-1740, -\n' .. ': Panasonic PV-1742, -\n' .. ': Panasonic PV-1750, -\n' .. ': Panasonic PV-1770, -\n' .. ': Panasonic PV-1780, -\n' .. ': Panasonic PV-2100, -\n' .. ': Panasonic PV-2200, -\n' .. ': Panasonic PV-2700B, -\n' .. ': Panasonic PV-2700R, -\n' .. ': Panasonic PV-2700W, -\n' .. ': Panasonic PV-2720, -\n' .. ': Panasonic PV-2800B, -\n' .. ': Panasonic PV-2800G, -\n' .. ': Panasonic PV-2800R, -\n' .. ': Panasonic PV-2800W, -\n' .. ': Panasonic PV-2812, -\n' .. ': Panasonic PV-2820, -\n' .. ': Panasonic PV-2850, -\n' .. ': Panasonic PV-3100, -\n' .. ': Panasonic PV-3200, -\n' .. ': Panasonic PV-3700, -\n' .. ': Panasonic PV-3720, -\n' .. ': Panasonic PV-3770, -\n' .. ': Panasonic PV-4100, -\n' .. ': Panasonic PV-4500, -\n' .. ': Panasonic PV-4700, -\n' .. ': Panasonic PV-4720, -\n' .. ': Panasonic PV-4722, -\n' .. ': Panasonic PV-4760, -\n' .. ': Panasonic PV-4761, -\n' .. ': Panasonic PV-4768, -\n' .. ': Panasonic PV-4770, -\n' .. ': Panasonic PV-4780, -\n' .. ': Panasonic PV-4800, -\n' .. ': Panasonic PV-4820, -\n' .. ': Panasonic PV-4822, -\n' .. ': Panasonic PV-4826, -\n' .. ': Panasonic PV-4852, -\n' .. ': Panasonic PV-4860, -\n' .. ': Panasonic PV-4862, -\n' .. ': Panasonic PV-4870, -\n' .. ': Panasonic PV-5200, -\n' .. ': Panasonic PV-5400, -\n' .. ': Panasonic PV-6500, -\n' .. ': Panasonic PV-6600, -\n' .. ': Panasonic PV-8500, -\n' .. ': Panasonic PV-8600, -\n' .. ': Panasonic PV-9500, -\n' .. ': Panasonic PV-9600, -\n' .. ': Panasonic PV-S4764, -\n' .. ': Panasonic PV-S4864, -\n' .. ': Panasonic PV-S4880, -\n' .. ': Panasonic WJ-GXE900, -\n' .. ': Philco V1011, -\n' .. ': Philco V1100, -\n' .. ': Philco V1320TGY01, -\n' .. ': Philips VPH733TS01, -\n' .. ': Pioneer VX-50, -\n' .. ': Pioneer VX-90, -\n' .. ': Prime Image 2X, -\n' .. ': Prime Image 50II, -\n' .. ': Prime Image 50III, -\n' .. ': Prime Image Excel 6.5, -\n' .. ': Prime Image TBC SYNC+, -\n' .. ': Quasar VH5020RW, -\n' .. ': Quasar VH5022UW, -\n' .. ': Quasar VH5031WW, -\n' .. ': Quasar VH5042XQ, -\n' .. ': Quasar VH5635WW, -\n' .. ': RCA VBT-200, -\n' .. ': RCA VCT-200, -\n' .. ': RCA VCT-201, -\n' .. ': RCA VCT-400, -\n' .. ': RCA VDP-100, -\n' .. ': RCA VDT-350, -\n' .. ': RCA VDT-625, -\n' .. ': RCA VEP-150, -\n' .. ': RCA VET-180, -\n' .. ': RCA VET-200, -\n' .. ': RCA VET-253, -\n' .. ': RCA VET-450, -\n' .. ': RCA VET-650, -\n' .. ': RCA VFP-170, -\n' .. ': RCA VFT-190, -\n' .. ': RCA VFT-250, -\n' .. ': RCA VFT-450, -\n' .. ': RCA VFT-650, -\n' .. ': RCA VGP-170, -\n' .. ': RCA VGT-200, -\n' .. ': RCA VGT-205, -\n' .. ': RCA VGT-225, -\n' .. ': RCA VGT-300, -\n' .. ': RCA VGT-450, -\n' .. ': RCA VGT-650, -\n' .. ': RCA VJP-140, -\n' .. ': RCA VJP-825, -\n' .. ': RCA VJP-900, -\n' .. ': RCA VJT-255, -\n' .. ': RCA VJT-275... further resultsThe part "\n' ..</br> '" of the query was not understood.</br>Results might not be as expected.'

local queryResult = frame:preprocess(queryWikitext)

-- Extract unique brands from the result local brandsSet = {} local brandsList = {}

if queryResult then -- Parse each row from the broadtable

for cellContent in queryResult:gmatch('<td[^>]*>(.-)') do local brand = trim(cellContent:gsub('<[^>]+>', )) if brand and brand ~= and not brandsSet[brand] then brandsSet[brand] = true table.insert(brandsList, brand) end end end -- Sort alphabetically table.sort(brandsList) -- If no brands found, return a message if #brandsList == 0 then return '

No AV device brands found.

'

end

-- Build the output: render each brand using Template:AV brand entry local output = {} for _, brand in ipairs(brandsList) do

local templateCall = '

' .. brand .. '(0)

'

table.insert(output, frame:preprocess(templateCall)) end

return table.concat(output, '\n') end

return p

MediaWiki Appliance - Powered by TurnKey Linux