community.gno
    3.19 Kb · 71 lines
    
  
 1package community
 2
 3import (
 4	zenaov1 "gno.land/p/zenao/zenao/v1"
 5	"gno.land/p/zenao/communities"
 6	"gno.land/p/zenao/basedao"
 7	"gno.land/p/zenao/daokit"
 8	"gno.land/p/zenao/daocond"
 9	"gno.land/r/demo/profile"
10	"gno.land/r/zenao/communityreg"
11	"gno.land/r/zenao/social_feed"
12)
13
14var (
15	DAO      daokit.DAO
16	localDAO daokit.DAO
17
18	community *communities.Community // XXX: needed for backward compatibility with frontend queries
19	feedId    string                 // XXX: workaround for "unexpected zero object id" issue
20)
21
22func init() {
23	// XXX: workaround for "unexpected zero object id" issue
24	feedId = social_feed.NewFeed(cross, "main", false, feedAuth)
25}
26
27func init() {
28	conf := communities.Config{
29		ZenaoAdminAddr:   "g1djrkw9tf4px658j85cc6fhsvm50uf9s0g6kfsm",
30		Administrators:   []string{"gno.land/r/zenao/users/u9"},
31		Members:          []string{"gno.land/r/zenao/users/u9", "gno.land/r/zenao/users/u13", "gno.land/r/zenao/users/u14", "gno.land/r/zenao/users/u16", "gno.land/r/zenao/users/u26", "gno.land/r/zenao/users/u41", "gno.land/r/zenao/users/u251", "gno.land/r/zenao/users/u409", "gno.land/r/zenao/users/u500", "gno.land/r/zenao/users/u501", "gno.land/r/zenao/users/u502", "gno.land/r/zenao/users/u504", "gno.land/r/zenao/users/u505", "gno.land/r/zenao/users/u506", "gno.land/r/zenao/users/u507", "gno.land/r/zenao/users/u508", "gno.land/r/zenao/users/u510", "gno.land/r/zenao/users/u511", "gno.land/r/zenao/users/u9"},
32		Events:           []string{"gno.land/r/zenao/events/e50", "gno.land/r/zenao/events/e63"},
33		DisplayName:      "Ciné Meetup #10",
34		Description:      "Le Mercredi 24 Septembre nous organisons la 10ème édition du Ciné Meetup.\nLe Ciné Meetup est un évènement de networking autour des métiers du cinéma et de l'audiovisuel.\nQue vous soyez étudiant, amateur, ou professionnel aguerri, dans la prod, la réalisation, l'acting, le cadrage, la déco, la post-production etc, les soirées Ciné Meetup sont ouvertes à toutes et tous.\nVous pourrez trouver des équipes pour vos projets, poser des questions ou tout simplement vous faire de nouveaux contacts dans vos secteurs de prédilections.\nLa soirée est GRATUITE !\nCa se passe le Mercredi 24 Septembre à partir de 19h au bar TDTF, 43 rue Cavendish Paris 75019.",
35		AvatarURI:        "ipfs://bafybeiehd35hq6ceutygnkmwnetv4sy7co6ijnmxblcmjfidbvqftxlgj4",
36		BannerURI:        "",
37		GetProfileString: profile.GetStringField,
38		SetProfileString: profile.SetStringField,
39		CrossFn: crossFn,
40		SetImplemFn: setImplem,
41		FeedId: feedId,
42		PrivateVarName: "community",
43	}
44	community = communities.NewCommunity(&conf)
45	communityreg.Register(cross, func() *zenaov1.CommunityInfo { return community.Info() })
46}
47
48func Vote(_ realm, proposalID uint64, vote daocond.Vote) {
49	localDAO.Vote(proposalID, vote)
50}
51
52func Execute(_ realm, proposalID uint64) {
53	localDAO.Execute(proposalID)
54}
55
56func Render(path string) string {
57	return localDAO.Render(path)
58}
59
60func feedAuth() (string, bool) {
61	caller := community.DAOPrivate.CallerID() // XXX: this should be upgradable
62	return caller, basedao.MustGetMembersViewExtension(localDAO).IsMember(caller)
63}
64
65func crossFn(_ realm, cb func()) {
66	cb()
67}
68
69func setImplem(newLocalDAO daokit.DAO, newDAO daokit.DAO) {
70	localDAO, DAO = newLocalDAO, newDAO
71}