package community import ( zenaov1 "gno.land/p/zenao/zenao/v1" "gno.land/p/zenao/communities" "gno.land/p/zenao/basedao" "gno.land/p/zenao/daokit" "gno.land/p/zenao/daocond" "gno.land/r/demo/profile" "gno.land/r/zenao/communityreg" "gno.land/r/zenao/social_feed" ) var ( DAO daokit.DAO localDAO daokit.DAO community *communities.Community // XXX: needed for backward compatibility with frontend queries feedId string // XXX: workaround for "unexpected zero object id" issue ) func init() { // XXX: workaround for "unexpected zero object id" issue feedId = social_feed.NewFeed(cross, "main", false, feedAuth) } func init() { conf := communities.Config{ ZenaoAdminAddr: "g1djrkw9tf4px658j85cc6fhsvm50uf9s0g6kfsm", Administrators: []string{"gno.land/r/zenao/users/u28"}, Members: []string{"gno.land/r/zenao/users/u1", "gno.land/r/zenao/users/u4", "gno.land/r/zenao/users/u6", "gno.land/r/zenao/users/u7", "gno.land/r/zenao/users/u9", "gno.land/r/zenao/users/u13", "gno.land/r/zenao/users/u14", "gno.land/r/zenao/users/u15", "gno.land/r/zenao/users/u16", "gno.land/r/zenao/users/u17", "gno.land/r/zenao/users/u23", "gno.land/r/zenao/users/u28", "gno.land/r/zenao/users/u29", "gno.land/r/zenao/users/u30", "gno.land/r/zenao/users/u31", "gno.land/r/zenao/users/u33", "gno.land/r/zenao/users/u34", "gno.land/r/zenao/users/u35", "gno.land/r/zenao/users/u36", "gno.land/r/zenao/users/u37", "gno.land/r/zenao/users/u38", "gno.land/r/zenao/users/u39", "gno.land/r/zenao/users/u40", "gno.land/r/zenao/users/u41", "gno.land/r/zenao/users/u42", "gno.land/r/zenao/users/u43", "gno.land/r/zenao/users/u44", "gno.land/r/zenao/users/u45", "gno.land/r/zenao/users/u46", "gno.land/r/zenao/users/u47", "gno.land/r/zenao/users/u48", "gno.land/r/zenao/users/u49", "gno.land/r/zenao/users/u50", "gno.land/r/zenao/users/u51", "gno.land/r/zenao/users/u52", "gno.land/r/zenao/users/u53", "gno.land/r/zenao/users/u54", "gno.land/r/zenao/users/u55", "gno.land/r/zenao/users/u56", "gno.land/r/zenao/users/u57", "gno.land/r/zenao/users/u58", "gno.land/r/zenao/users/u59", "gno.land/r/zenao/users/u60", "gno.land/r/zenao/users/u61", "gno.land/r/zenao/users/u62", "gno.land/r/zenao/users/u63", "gno.land/r/zenao/users/u64", "gno.land/r/zenao/users/u65", "gno.land/r/zenao/users/u66", "gno.land/r/zenao/users/u67", "gno.land/r/zenao/users/u68", "gno.land/r/zenao/users/u69", "gno.land/r/zenao/users/u70", "gno.land/r/zenao/users/u71", "gno.land/r/zenao/users/u72", "gno.land/r/zenao/users/u73", "gno.land/r/zenao/users/u74", "gno.land/r/zenao/users/u75", "gno.land/r/zenao/users/u76", "gno.land/r/zenao/users/u77", "gno.land/r/zenao/users/u78", "gno.land/r/zenao/users/u79", "gno.land/r/zenao/users/u80", "gno.land/r/zenao/users/u81", "gno.land/r/zenao/users/u82", "gno.land/r/zenao/users/u85", "gno.land/r/zenao/users/u86", "gno.land/r/zenao/users/u87", "gno.land/r/zenao/users/u88", "gno.land/r/zenao/users/u89", "gno.land/r/zenao/users/u90", "gno.land/r/zenao/users/u91", "gno.land/r/zenao/users/u92", "gno.land/r/zenao/users/u93", "gno.land/r/zenao/users/u94", "gno.land/r/zenao/users/u95", "gno.land/r/zenao/users/u96", "gno.land/r/zenao/users/u97", "gno.land/r/zenao/users/u98", "gno.land/r/zenao/users/u99", "gno.land/r/zenao/users/u101", "gno.land/r/zenao/users/u102", "gno.land/r/zenao/users/u103", "gno.land/r/zenao/users/u104", "gno.land/r/zenao/users/u105", "gno.land/r/zenao/users/u106", "gno.land/r/zenao/users/u107", "gno.land/r/zenao/users/u108", "gno.land/r/zenao/users/u109", "gno.land/r/zenao/users/u110", "gno.land/r/zenao/users/u111", "gno.land/r/zenao/users/u112", "gno.land/r/zenao/users/u113", "gno.land/r/zenao/users/u114", "gno.land/r/zenao/users/u115", "gno.land/r/zenao/users/u116", "gno.land/r/zenao/users/u117", "gno.land/r/zenao/users/u118", "gno.land/r/zenao/users/u119", "gno.land/r/zenao/users/u120", "gno.land/r/zenao/users/u121", "gno.land/r/zenao/users/u122", "gno.land/r/zenao/users/u124", "gno.land/r/zenao/users/u125", "gno.land/r/zenao/users/u126", "gno.land/r/zenao/users/u127", "gno.land/r/zenao/users/u128", "gno.land/r/zenao/users/u129", "gno.land/r/zenao/users/u130", "gno.land/r/zenao/users/u131", "gno.land/r/zenao/users/u132", "gno.land/r/zenao/users/u133", "gno.land/r/zenao/users/u134", "gno.land/r/zenao/users/u135", "gno.land/r/zenao/users/u136", "gno.land/r/zenao/users/u137", "gno.land/r/zenao/users/u138", "gno.land/r/zenao/users/u139", "gno.land/r/zenao/users/u140", "gno.land/r/zenao/users/u141", "gno.land/r/zenao/users/u142", "gno.land/r/zenao/users/u143", "gno.land/r/zenao/users/u144", "gno.land/r/zenao/users/u145", "gno.land/r/zenao/users/u146", "gno.land/r/zenao/users/u147", "gno.land/r/zenao/users/u148", "gno.land/r/zenao/users/u149", "gno.land/r/zenao/users/u150", "gno.land/r/zenao/users/u151", "gno.land/r/zenao/users/u152", "gno.land/r/zenao/users/u153", "gno.land/r/zenao/users/u154", "gno.land/r/zenao/users/u155", "gno.land/r/zenao/users/u156", "gno.land/r/zenao/users/u157", "gno.land/r/zenao/users/u158", "gno.land/r/zenao/users/u159", "gno.land/r/zenao/users/u160", "gno.land/r/zenao/users/u162", "gno.land/r/zenao/users/u163", "gno.land/r/zenao/users/u164", "gno.land/r/zenao/users/u165", "gno.land/r/zenao/users/u166", "gno.land/r/zenao/users/u167", "gno.land/r/zenao/users/u168", "gno.land/r/zenao/users/u169", "gno.land/r/zenao/users/u170", "gno.land/r/zenao/users/u171", "gno.land/r/zenao/users/u172", "gno.land/r/zenao/users/u173", "gno.land/r/zenao/users/u174", "gno.land/r/zenao/users/u175", "gno.land/r/zenao/users/u176", "gno.land/r/zenao/users/u177", "gno.land/r/zenao/users/u178", "gno.land/r/zenao/users/u179", "gno.land/r/zenao/users/u180", "gno.land/r/zenao/users/u181", "gno.land/r/zenao/users/u182", "gno.land/r/zenao/users/u183", "gno.land/r/zenao/users/u184", "gno.land/r/zenao/users/u185", "gno.land/r/zenao/users/u186", "gno.land/r/zenao/users/u187", "gno.land/r/zenao/users/u188", "gno.land/r/zenao/users/u189", "gno.land/r/zenao/users/u190", "gno.land/r/zenao/users/u191", "gno.land/r/zenao/users/u193", "gno.land/r/zenao/users/u194", "gno.land/r/zenao/users/u195", "gno.land/r/zenao/users/u197", "gno.land/r/zenao/users/u198", "gno.land/r/zenao/users/u199", "gno.land/r/zenao/users/u200", "gno.land/r/zenao/users/u201", "gno.land/r/zenao/users/u202", "gno.land/r/zenao/users/u203", "gno.land/r/zenao/users/u204", "gno.land/r/zenao/users/u205", "gno.land/r/zenao/users/u206", "gno.land/r/zenao/users/u207", "gno.land/r/zenao/users/u208", "gno.land/r/zenao/users/u209", "gno.land/r/zenao/users/u210", "gno.land/r/zenao/users/u211", "gno.land/r/zenao/users/u212", "gno.land/r/zenao/users/u213", "gno.land/r/zenao/users/u214", "gno.land/r/zenao/users/u215", "gno.land/r/zenao/users/u216", "gno.land/r/zenao/users/u217", "gno.land/r/zenao/users/u218", "gno.land/r/zenao/users/u219", "gno.land/r/zenao/users/u220", "gno.land/r/zenao/users/u221", "gno.land/r/zenao/users/u222", "gno.land/r/zenao/users/u223", "gno.land/r/zenao/users/u224", "gno.land/r/zenao/users/u225", "gno.land/r/zenao/users/u226", "gno.land/r/zenao/users/u227", "gno.land/r/zenao/users/u228", "gno.land/r/zenao/users/u229", "gno.land/r/zenao/users/u230", "gno.land/r/zenao/users/u231", "gno.land/r/zenao/users/u232", "gno.land/r/zenao/users/u233", "gno.land/r/zenao/users/u234", "gno.land/r/zenao/users/u235", "gno.land/r/zenao/users/u236", "gno.land/r/zenao/users/u237", "gno.land/r/zenao/users/u238", "gno.land/r/zenao/users/u239", "gno.land/r/zenao/users/u240", "gno.land/r/zenao/users/u241", "gno.land/r/zenao/users/u242", "gno.land/r/zenao/users/u243", "gno.land/r/zenao/users/u244", "gno.land/r/zenao/users/u245", "gno.land/r/zenao/users/u246", "gno.land/r/zenao/users/u247", "gno.land/r/zenao/users/u248", "gno.land/r/zenao/users/u249", "gno.land/r/zenao/users/u250", "gno.land/r/zenao/users/u251", "gno.land/r/zenao/users/u252", "gno.land/r/zenao/users/u253", "gno.land/r/zenao/users/u254", "gno.land/r/zenao/users/u255", "gno.land/r/zenao/users/u256", "gno.land/r/zenao/users/u257", "gno.land/r/zenao/users/u258", "gno.land/r/zenao/users/u259", "gno.land/r/zenao/users/u260", "gno.land/r/zenao/users/u261", "gno.land/r/zenao/users/u262", "gno.land/r/zenao/users/u263", "gno.land/r/zenao/users/u264", "gno.land/r/zenao/users/u265", "gno.land/r/zenao/users/u266", "gno.land/r/zenao/users/u267", "gno.land/r/zenao/users/u268", "gno.land/r/zenao/users/u269", "gno.land/r/zenao/users/u270", "gno.land/r/zenao/users/u271", "gno.land/r/zenao/users/u272", "gno.land/r/zenao/users/u273", "gno.land/r/zenao/users/u274", "gno.land/r/zenao/users/u275", "gno.land/r/zenao/users/u276", "gno.land/r/zenao/users/u277", "gno.land/r/zenao/users/u278", "gno.land/r/zenao/users/u279", "gno.land/r/zenao/users/u280", "gno.land/r/zenao/users/u281", "gno.land/r/zenao/users/u282", "gno.land/r/zenao/users/u283", "gno.land/r/zenao/users/u284", "gno.land/r/zenao/users/u285", "gno.land/r/zenao/users/u286", "gno.land/r/zenao/users/u287", "gno.land/r/zenao/users/u288", "gno.land/r/zenao/users/u289", "gno.land/r/zenao/users/u290", "gno.land/r/zenao/users/u291", "gno.land/r/zenao/users/u292", "gno.land/r/zenao/users/u293", "gno.land/r/zenao/users/u294", "gno.land/r/zenao/users/u295", "gno.land/r/zenao/users/u296", "gno.land/r/zenao/users/u297", "gno.land/r/zenao/users/u298", "gno.land/r/zenao/users/u299", "gno.land/r/zenao/users/u300", "gno.land/r/zenao/users/u301", "gno.land/r/zenao/users/u302", "gno.land/r/zenao/users/u303", "gno.land/r/zenao/users/u304", "gno.land/r/zenao/users/u305", "gno.land/r/zenao/users/u306", "gno.land/r/zenao/users/u307", "gno.land/r/zenao/users/u308", "gno.land/r/zenao/users/u309", "gno.land/r/zenao/users/u310", "gno.land/r/zenao/users/u311", "gno.land/r/zenao/users/u312", "gno.land/r/zenao/users/u313", "gno.land/r/zenao/users/u314", "gno.land/r/zenao/users/u315", "gno.land/r/zenao/users/u316", "gno.land/r/zenao/users/u317", "gno.land/r/zenao/users/u318", "gno.land/r/zenao/users/u319", "gno.land/r/zenao/users/u320", "gno.land/r/zenao/users/u321", "gno.land/r/zenao/users/u322", "gno.land/r/zenao/users/u324", "gno.land/r/zenao/users/u325", "gno.land/r/zenao/users/u326", "gno.land/r/zenao/users/u327", "gno.land/r/zenao/users/u328", "gno.land/r/zenao/users/u329", "gno.land/r/zenao/users/u330", "gno.land/r/zenao/users/u331", "gno.land/r/zenao/users/u332", "gno.land/r/zenao/users/u333", "gno.land/r/zenao/users/u334", "gno.land/r/zenao/users/u335", "gno.land/r/zenao/users/u336", "gno.land/r/zenao/users/u337", "gno.land/r/zenao/users/u338", "gno.land/r/zenao/users/u339", "gno.land/r/zenao/users/u340", "gno.land/r/zenao/users/u341", "gno.land/r/zenao/users/u342", "gno.land/r/zenao/users/u343", "gno.land/r/zenao/users/u344", "gno.land/r/zenao/users/u346", "gno.land/r/zenao/users/u347", "gno.land/r/zenao/users/u348", "gno.land/r/zenao/users/u349", "gno.land/r/zenao/users/u350", "gno.land/r/zenao/users/u354", "gno.land/r/zenao/users/u355", "gno.land/r/zenao/users/u356", "gno.land/r/zenao/users/u357", "gno.land/r/zenao/users/u358", "gno.land/r/zenao/users/u359", "gno.land/r/zenao/users/u360", "gno.land/r/zenao/users/u361", "gno.land/r/zenao/users/u362", "gno.land/r/zenao/users/u363", "gno.land/r/zenao/users/u364", "gno.land/r/zenao/users/u365", "gno.land/r/zenao/users/u366", "gno.land/r/zenao/users/u367", "gno.land/r/zenao/users/u368", "gno.land/r/zenao/users/u369", "gno.land/r/zenao/users/u370", "gno.land/r/zenao/users/u371", "gno.land/r/zenao/users/u372", "gno.land/r/zenao/users/u373", "gno.land/r/zenao/users/u374", "gno.land/r/zenao/users/u28"}, Events: []string{"gno.land/r/zenao/events/e15"}, DisplayName: "Hyper Hacktive Festival #0", Description: "![Ecran-salle-HHF-July25-1920x1080.png](ipfs://bafybeieu7ivvmk5y4rhqhty2oaudtoamldkevftbiqtuzfjys3p4d4bbdq)\n\n---\n█████ **INFORMATIONS** █████\n\n🤝 **17h00 à 19h30 : Warmup & Ciné-Meetup**\n \nRendez-vous gratuit pour rencontrer des intermittents, étudiants, techniciens, et passionnés qui travaillent ou cherchent à travailler dans les métiers du cinéma et de l'audiovisuel. \n\n📍 43 Rue Cavendish, 75019 Paris\n\n---\n 🎟️ **19h45 : Rendez-vous au MK2 Quais de Seine** \n\n📍 14 Quai de la Seine, 75019 Paris\n\n\n🎬 **20h à 22h : Projection des films au MK2 Quais de Seine**:\n\nPrésentation du concept de l'HyperHacktive festival et de sa communauté naissante. Puis projection des films sélectionnés et/ou ayant reçus une carte blanche par l'équipe Samouraï Coop.\n\n---\n🍻 **22h à 2h : Afterparty au TDTF PARIS**\n\n📍 43 Rue Cavendish, 75019 Paris\n\nÀ moins de 10minutes à pieds, ce bar sera l'occasion de permettre aux participants de boire des verres, de se rencontrer, de débriefer des films, d'imaginer ensemble la suite de cette communauté naissance. \n\n🔊 **23h - 2h : Merguez Palace** (DJ Set Social Club) Afrobeat – Baile Funk – Amapiano – Techno – House – Hip-Hop à la sauce samouraï. 🌴\n\nCette soirée est également l'occasion de fêter les 8 ans de [Samouraï Coop](https://www.samourai.world), vos discrets et loyaux serviteurs et de rassembler toutes les équipes (tech, films, design, artists). \n\n---\n⛩️ Cet événement est gratuit, ouvert à toutes et tous et l'occasion de faire des rencontres humaines aléatoires comme on les aime. \nInvitez qui vous voulez! 🥷\n\n🤲 **Safe space:** Nous appliquons une politique de tolérance zéro envers les propos et violences sexistes, sexuelles, discriminatoires, quels qu'ils soient.\n\n---\n\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n\n██ **🎞️ SÉLECTION DE FILMS 2025 🎬** ██\n\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n\n\n---\n\n### #1 : 📼 **SOY YO** (France 🇫🇷 & Cuba 🇨🇺, 2025) \n\nRéalisé par Isaac Lasserre Pieri \n\nFormat: 20minutes\n\n#documentaire #granted #carteblanche\n\n---\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n### #2 : 📼 **HASHIRIYA** (🇫🇷 & 🇯🇵, 2025)\n\nRéalisé par Thomas ILARDI \n\nFormat: 20minutes\n\n#documentaire #granted #carteblanche \n\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n### #3 : 📼 **1895 - An AI Tribute to Cinema** (🇫🇷, 2025)\n\nRéalisateurs : Hadrien Gautrot & Ilia Gerber\nProduction : Nicéphore Studio \n\nFormat: 3minutes\n\n#IA #tributetocinema\n\n---\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n### #4 : 📼 **DATABASE** (🇩🇪, 2015)\n\nUne performance de Tobias Zimmer & David Debner\n\nFormat: 2minutes\n\n#performance #privacy\n\n---\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n### #5 : 📼 **SYMPTOMANIAC** (🇫🇷, 2025)\n\nRéalisé par Nicolas Romieu \n\nFormat: 12minutes\n\n#comédienoire #granted #carteblanche #exclusivité\n\n---\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n### #6 : 📼 **Rising Above** (🇨🇿 République tchèque, 2023)\n\nRéalisé par Natálie Durchánková \n\nFormat: 4minutes\n\n#animation #drame #resilience \n\n---\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n### #7 : 📼 Lost Guy (🇫🇷 & 🌎, 2025)\n\nRéalisé par Yohann Grignou\n\nFormat: 4 minutes\n\n#horscatégorie #philosophie #société\n\n\n\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n\n\n![Prog-x4.png](ipfs://bafybeif5pfvwgm27ems365m5ipxubbqlgf6mz5px2nefxth57tjsfqzkqm)", AvatarURI: "ipfs://bafybeicrkuufqey2to73f5jxia5ez6y4sgijxork5hn5bzzy7ghdpui4g4", BannerURI: "", GetProfileString: profile.GetStringField, SetProfileString: profile.SetStringField, CrossFn: crossFn, SetImplemFn: setImplem, FeedId: feedId, PrivateVarName: "community", } community = communities.NewCommunity(&conf) communityreg.Register(cross, func() *zenaov1.CommunityInfo { return community.Info() }) } func Vote(_ realm, proposalID uint64, vote daocond.Vote) { localDAO.Vote(proposalID, vote) } func Execute(_ realm, proposalID uint64) { localDAO.Execute(proposalID) } func Render(path string) string { return localDAO.Render(path) } func feedAuth() (string, bool) { caller := community.DAOPrivate.CallerID() // XXX: this should be upgradable return caller, basedao.MustGetMembersViewExtension(localDAO).IsMember(caller) } func crossFn(_ realm, cb func()) { cb() } func setImplem(newLocalDAO daokit.DAO, newDAO daokit.DAO) { localDAO, DAO = newLocalDAO, newDAO }