MCPcopy
hub / github.com/microfeed/microfeed / initDb

Method initDb

edge-src/models/FeedDb.js:137–194  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

135 }
136
137 async initDb() {
138 const settings = {
139 [SETTINGS_CATEGORIES.SUBSCRIBE_METHODS]: {
140 methods: [
141 {...PREDEFINED_SUBSCRIBE_METHODS.rss, id: randomShortUUID(), editable: false, enabled: true},
142 {...PREDEFINED_SUBSCRIBE_METHODS.json, id: randomShortUUID(), editable: false, enabled: true},
143 ],
144 },
145 [SETTINGS_CATEGORIES.WEB_GLOBAL_SETTINGS]: {
146 favicon: {
147 'url': '/assets/default/favicon.png',
148 'contentType': 'image/png',
149 },
150 'itemsSortOrder': ITEMS_SORT_ORDERS.NEWEST_FIRST,
151 'itemsPerPage': DEFAULT_ITEMS_PER_PAGE,
152 },
153 [SETTINGS_CATEGORIES.ACCESS]: {
154 currentPolicy: 'public',
155 },
156 [SETTINGS_CATEGORIES.ANALYTICS]: {},
157 [SETTINGS_CATEGORIES.CUSTOM_CODE]: {},
158 };
159 const channel = {
160 image: '/assets/default/channel-image.png',
161 link: this.baseUrl,
162 language: 'en-us',
163 categories: [],
164 'itunes:explicit': false,
165 'itunes:type': 'episodic',
166 'itunes:complete': false,
167 'itunes:block': false,
168 'copyright': `©${(new Date()).getFullYear()}`,
169 };
170
171 const batchStatements = [
172 this.getInsertSql('channels', {
173 'id': randomShortUUID(),
174 'status': STATUSES.PUBLISHED,
175 'is_primary': 1,
176 'data': JSON.stringify(channel),
177 }),
178 ];
179
180 Object.keys(settings).forEach((s) => {
181 batchStatements.push(this.getInsertSql('settings', {
182 'category': s,
183 'data': JSON.stringify(settings[s]),
184 }));
185 })
186
187 await this.FEED_DB.batch(batchStatements);
188
189 return {
190 channel,
191 items: [],
192 settings,
193 };
194 }

Callers 1

getContentMethod · 0.95

Calls 2

getInsertSqlMethod · 0.95
randomShortUUIDFunction · 0.90

Tested by

no test coverage detected