Best Python code snippet using uiautomator
routes.js
Source:routes.js
1/**2 * Generated by "@vuepress/internal-routes"3 */4import { injectComponentOption, ensureAsyncComponentsLoaded } from '@app/util'5import rootMixins from '@internal/root-mixins'6import GlobalLayout from "/Users/xule/vuepress/node_modules/@vuepress/core/lib/client/components/GlobalLayout.vue"7injectComponentOption(GlobalLayout, 'mixins', rootMixins)8export const routes = [9 {10 name: "v-73453928",11 path: "/api/cli.html",12 component: GlobalLayout,13 beforeEnter: (to, from, next) => {14 ensureAsyncComponentsLoaded("Layout", "v-73453928").then(next)15 },16 },17 {18 name: "v-5d81d274",19 path: "/api/node.html",20 component: GlobalLayout,21 beforeEnter: (to, from, next) => {22 ensureAsyncComponentsLoaded("Layout", "v-5d81d274").then(next)23 },24 },25 {26 name: "v-3c48d225",27 path: "/faq/",28 component: GlobalLayout,29 beforeEnter: (to, from, next) => {30 ensureAsyncComponentsLoaded("Layout", "v-3c48d225").then(next)31 },32 },33 {34 path: "/faq/index.html",35 redirect: "/faq/"36 },37 {38 name: "v-21d2ac23",39 path: "/config/",40 component: GlobalLayout,41 beforeEnter: (to, from, next) => {42 ensureAsyncComponentsLoaded("Layout", "v-21d2ac23").then(next)43 },44 },45 {46 path: "/config/index.html",47 redirect: "/config/"48 },49 {50 name: "v-d5771bce",51 path: "/guide/",52 component: GlobalLayout,53 beforeEnter: (to, from, next) => {54 ensureAsyncComponentsLoaded("Layout", "v-d5771bce").then(next)55 },56 },57 {58 path: "/guide/index.html",59 redirect: "/guide/"60 },61 {62 name: "v-09c23cc8",63 path: "/guide/assets.html",64 component: GlobalLayout,65 beforeEnter: (to, from, next) => {66 ensureAsyncComponentsLoaded("Layout", "v-09c23cc8").then(next)67 },68 },69 {70 name: "v-8e1ab568",71 path: "/guide/basic-config.html",72 component: GlobalLayout,73 beforeEnter: (to, from, next) => {74 ensureAsyncComponentsLoaded("Layout", "v-8e1ab568").then(next)75 },76 },77 {78 name: "v-263a0700",79 path: "/guide/deploy.html",80 component: GlobalLayout,81 beforeEnter: (to, from, next) => {82 ensureAsyncComponentsLoaded("Layout", "v-263a0700").then(next)83 },84 },85 {86 name: "v-38f82170",87 path: "/guide/directory-structure.html",88 component: GlobalLayout,89 beforeEnter: (to, from, next) => {90 ensureAsyncComponentsLoaded("Layout", "v-38f82170").then(next)91 },92 },93 {94 name: "v-32d45ae8",95 path: "/guide/frontmatter.html",96 component: GlobalLayout,97 beforeEnter: (to, from, next) => {98 ensureAsyncComponentsLoaded("Layout", "v-32d45ae8").then(next)99 },100 },101 {102 name: "v-411d91a8",103 path: "/guide/getting-started.html",104 component: GlobalLayout,105 beforeEnter: (to, from, next) => {106 ensureAsyncComponentsLoaded("Layout", "v-411d91a8").then(next)107 },108 },109 {110 name: "v-1def10c8",111 path: "/guide/global-computed.html",112 component: GlobalLayout,113 beforeEnter: (to, from, next) => {114 ensureAsyncComponentsLoaded("Layout", "v-1def10c8").then(next)115 },116 },117 {118 name: "v-32196c68",119 path: "/guide/markdown-slot.html",120 component: GlobalLayout,121 beforeEnter: (to, from, next) => {122 ensureAsyncComponentsLoaded("Layout", "v-32196c68").then(next)123 },124 },125 {126 name: "v-8150c4dc",127 path: "/guide/i18n.html",128 component: GlobalLayout,129 beforeEnter: (to, from, next) => {130 ensureAsyncComponentsLoaded("Layout", "v-8150c4dc").then(next)131 },132 },133 {134 name: "v-af314a20",135 path: "/guide/markdown.html",136 component: GlobalLayout,137 beforeEnter: (to, from, next) => {138 ensureAsyncComponentsLoaded("Layout", "v-af314a20").then(next)139 },140 },141 {142 name: "v-4dc37c88",143 path: "/guide/using-vue.html",144 component: GlobalLayout,145 beforeEnter: (to, from, next) => {146 ensureAsyncComponentsLoaded("Layout", "v-4dc37c88").then(next)147 },148 },149 {150 name: "v-994d2284",151 path: "/guide/permalinks.html",152 component: GlobalLayout,153 beforeEnter: (to, from, next) => {154 ensureAsyncComponentsLoaded("Layout", "v-994d2284").then(next)155 },156 },157 {158 name: "v-410b8f01",159 path: "/",160 component: GlobalLayout,161 beforeEnter: (to, from, next) => {162 ensureAsyncComponentsLoaded("Layout", "v-410b8f01").then(next)163 },164 },165 {166 path: "/index.html",167 redirect: "/"168 },169 {170 name: "v-6b3ec228",171 path: "/miscellaneous/design-concepts.html",172 component: GlobalLayout,173 beforeEnter: (to, from, next) => {174 ensureAsyncComponentsLoaded("Layout", "v-6b3ec228").then(next)175 },176 },177 {178 name: "v-5ec9ab14",179 path: "/miscellaneous/glossary.html",180 component: GlobalLayout,181 beforeEnter: (to, from, next) => {182 ensureAsyncComponentsLoaded("Layout", "v-5ec9ab14").then(next)183 },184 },185 {186 name: "v-0f964348",187 path: "/miscellaneous/local-development.html",188 component: GlobalLayout,189 beforeEnter: (to, from, next) => {190 ensureAsyncComponentsLoaded("Layout", "v-0f964348").then(next)191 },192 },193 {194 name: "v-c6511c70",195 path: "/miscellaneous/migration-guide.html",196 component: GlobalLayout,197 beforeEnter: (to, from, next) => {198 ensureAsyncComponentsLoaded("Layout", "v-c6511c70").then(next)199 },200 },201 {202 name: "v-14317003",203 path: "/plugin/",204 component: GlobalLayout,205 beforeEnter: (to, from, next) => {206 ensureAsyncComponentsLoaded("Layout", "v-14317003").then(next)207 },208 },209 {210 path: "/plugin/index.html",211 redirect: "/plugin/"212 },213 {214 name: "v-175d40f4",215 path: "/plugin/context-api.html",216 component: GlobalLayout,217 beforeEnter: (to, from, next) => {218 ensureAsyncComponentsLoaded("Layout", "v-175d40f4").then(next)219 },220 },221 {222 name: "v-40b442b0",223 path: "/plugin/life-cycle.html",224 component: GlobalLayout,225 beforeEnter: (to, from, next) => {226 ensureAsyncComponentsLoaded("Layout", "v-40b442b0").then(next)227 },228 },229 {230 name: "v-2e976786",231 path: "/plugin/official/plugin-back-to-top.html",232 component: GlobalLayout,233 beforeEnter: (to, from, next) => {234 ensureAsyncComponentsLoaded("Layout", "v-2e976786").then(next)235 },236 },237 {238 name: "v-71567518",239 path: "/plugin/official/plugin-active-header-links.html",240 component: GlobalLayout,241 beforeEnter: (to, from, next) => {242 ensureAsyncComponentsLoaded("Layout", "v-71567518").then(next)243 },244 },245 {246 name: "v-25663e70",247 path: "/plugin/official/plugin-blog.html",248 component: GlobalLayout,249 beforeEnter: (to, from, next) => {250 ensureAsyncComponentsLoaded("Layout", "v-25663e70").then(next)251 },252 },253 {254 name: "v-2dfe26c8",255 path: "/plugin/official/plugin-google-analytics.html",256 component: GlobalLayout,257 beforeEnter: (to, from, next) => {258 ensureAsyncComponentsLoaded("Layout", "v-2dfe26c8").then(next)259 },260 },261 {262 name: "v-2924e9f0",263 path: "/plugin/official/plugin-last-updated.html",264 component: GlobalLayout,265 beforeEnter: (to, from, next) => {266 ensureAsyncComponentsLoaded("Layout", "v-2924e9f0").then(next)267 },268 },269 {270 name: "v-722ca282",271 path: "/plugin/official/plugin-medium-zoom.html",272 component: GlobalLayout,273 beforeEnter: (to, from, next) => {274 ensureAsyncComponentsLoaded("Layout", "v-722ca282").then(next)275 },276 },277 {278 name: "v-f8b47738",279 path: "/plugin/official/plugin-pwa.html",280 component: GlobalLayout,281 beforeEnter: (to, from, next) => {282 ensureAsyncComponentsLoaded("Layout", "v-f8b47738").then(next)283 },284 },285 {286 name: "v-aa74ab3c",287 path: "/plugin/official/plugin-nprogress.html",288 component: GlobalLayout,289 beforeEnter: (to, from, next) => {290 ensureAsyncComponentsLoaded("Layout", "v-aa74ab3c").then(next)291 },292 },293 {294 name: "v-c163e850",295 path: "/plugin/official/plugin-register-components.html",296 component: GlobalLayout,297 beforeEnter: (to, from, next) => {298 ensureAsyncComponentsLoaded("Layout", "v-c163e850").then(next)299 },300 },301 {302 name: "v-905043f0",303 path: "/plugin/official/plugin-search.html",304 component: GlobalLayout,305 beforeEnter: (to, from, next) => {306 ensureAsyncComponentsLoaded("Layout", "v-905043f0").then(next)307 },308 },309 {310 name: "v-64e466f0",311 path: "/plugin/option-api.html",312 component: GlobalLayout,313 beforeEnter: (to, from, next) => {314 ensureAsyncComponentsLoaded("Layout", "v-64e466f0").then(next)315 },316 },317 {318 name: "v-66baf8c8",319 path: "/plugin/using-a-plugin.html",320 component: GlobalLayout,321 beforeEnter: (to, from, next) => {322 ensureAsyncComponentsLoaded("Layout", "v-66baf8c8").then(next)323 },324 },325 {326 name: "v-359e33c8",327 path: "/plugin/writing-a-plugin.html",328 component: GlobalLayout,329 beforeEnter: (to, from, next) => {330 ensureAsyncComponentsLoaded("Layout", "v-359e33c8").then(next)331 },332 },333 {334 name: "v-7836a9bf",335 path: "/theme/",336 component: GlobalLayout,337 beforeEnter: (to, from, next) => {338 ensureAsyncComponentsLoaded("Layout", "v-7836a9bf").then(next)339 },340 },341 {342 path: "/theme/index.html",343 redirect: "/theme/"344 },345 {346 name: "v-2d4a2f28",347 path: "/theme/blog-theme.html",348 component: GlobalLayout,349 beforeEnter: (to, from, next) => {350 ensureAsyncComponentsLoaded("Layout", "v-2d4a2f28").then(next)351 },352 },353 {354 name: "v-245d0084",355 path: "/theme/default-theme-config.html",356 component: GlobalLayout,357 beforeEnter: (to, from, next) => {358 ensureAsyncComponentsLoaded("Layout", "v-245d0084").then(next)359 },360 },361 {362 name: "v-99b66e70",363 path: "/theme/inheritance.html",364 component: GlobalLayout,365 beforeEnter: (to, from, next) => {366 ensureAsyncComponentsLoaded("Layout", "v-99b66e70").then(next)367 },368 },369 {370 name: "v-8bc734b8",371 path: "/theme/option-api.html",372 component: GlobalLayout,373 beforeEnter: (to, from, next) => {374 ensureAsyncComponentsLoaded("Layout", "v-8bc734b8").then(next)375 },376 },377 {378 name: "v-7edc83f0",379 path: "/theme/using-a-theme.html",380 component: GlobalLayout,381 beforeEnter: (to, from, next) => {382 ensureAsyncComponentsLoaded("Layout", "v-7edc83f0").then(next)383 },384 },385 {386 name: "v-5a6f8a88",387 path: "/theme/writing-a-theme.html",388 component: GlobalLayout,389 beforeEnter: (to, from, next) => {390 ensureAsyncComponentsLoaded("Layout", "v-5a6f8a88").then(next)391 },392 },393 {394 name: "v-666b1d23",395 path: "/zh/",396 component: GlobalLayout,397 beforeEnter: (to, from, next) => {398 ensureAsyncComponentsLoaded("Layout", "v-666b1d23").then(next)399 },400 },401 {402 path: "/zh/index.html",403 redirect: "/zh/"404 },405 {406 name: "v-13647ba0",407 path: "/zh/api/cli.html",408 component: GlobalLayout,409 beforeEnter: (to, from, next) => {410 ensureAsyncComponentsLoaded("Layout", "v-13647ba0").then(next)411 },412 },413 {414 name: "v-a2111570",415 path: "/zh/api/node.html",416 component: GlobalLayout,417 beforeEnter: (to, from, next) => {418 ensureAsyncComponentsLoaded("Layout", "v-a2111570").then(next)419 },420 },421 {422 name: "v-1fc5904b",423 path: "/zh/config/",424 component: GlobalLayout,425 beforeEnter: (to, from, next) => {426 ensureAsyncComponentsLoaded("Layout", "v-1fc5904b").then(next)427 },428 },429 {430 path: "/zh/config/index.html",431 redirect: "/zh/config/"432 },433 {434 name: "v-0320befa",435 path: "/zh/guide/",436 component: GlobalLayout,437 beforeEnter: (to, from, next) => {438 ensureAsyncComponentsLoaded("Layout", "v-0320befa").then(next)439 },440 },441 {442 path: "/zh/guide/index.html",443 redirect: "/zh/guide/"444 },445 {446 name: "v-209103c3",447 path: "/zh/faq/",448 component: GlobalLayout,449 beforeEnter: (to, from, next) => {450 ensureAsyncComponentsLoaded("Layout", "v-209103c3").then(next)451 },452 },453 {454 path: "/zh/faq/index.html",455 redirect: "/zh/faq/"456 },457 {458 name: "v-5680bda8",459 path: "/zh/guide/assets.html",460 component: GlobalLayout,461 beforeEnter: (to, from, next) => {462 ensureAsyncComponentsLoaded("Layout", "v-5680bda8").then(next)463 },464 },465 {466 name: "v-d6f6e0b0",467 path: "/zh/guide/basic-config.html",468 component: GlobalLayout,469 beforeEnter: (to, from, next) => {470 ensureAsyncComponentsLoaded("Layout", "v-d6f6e0b0").then(next)471 },472 },473 {474 name: "v-63929028",475 path: "/zh/guide/deploy.html",476 component: GlobalLayout,477 beforeEnter: (to, from, next) => {478 ensureAsyncComponentsLoaded("Layout", "v-63929028").then(next)479 },480 },481 {482 name: "v-bb8d2e70",483 path: "/zh/guide/frontmatter.html",484 component: GlobalLayout,485 beforeEnter: (to, from, next) => {486 ensureAsyncComponentsLoaded("Layout", "v-bb8d2e70").then(next)487 },488 },489 {490 name: "v-59102394",491 path: "/zh/guide/directory-structure.html",492 component: GlobalLayout,493 beforeEnter: (to, from, next) => {494 ensureAsyncComponentsLoaded("Layout", "v-59102394").then(next)495 },496 },497 {498 name: "v-01e8eea8",499 path: "/zh/guide/getting-started.html",500 component: GlobalLayout,501 beforeEnter: (to, from, next) => {502 ensureAsyncComponentsLoaded("Layout", "v-01e8eea8").then(next)503 },504 },505 {506 name: "v-41132dee",507 path: "/zh/guide/global-computed.html",508 component: GlobalLayout,509 beforeEnter: (to, from, next) => {510 ensureAsyncComponentsLoaded("Layout", "v-41132dee").then(next)511 },512 },513 {514 name: "v-e247f1f0",515 path: "/zh/guide/i18n.html",516 component: GlobalLayout,517 beforeEnter: (to, from, next) => {518 ensureAsyncComponentsLoaded("Layout", "v-e247f1f0").then(next)519 },520 },521 {522 name: "v-0fbb8d38",523 path: "/zh/guide/markdown-slot.html",524 component: GlobalLayout,525 beforeEnter: (to, from, next) => {526 ensureAsyncComponentsLoaded("Layout", "v-0fbb8d38").then(next)527 },528 },529 {530 name: "v-51584b68",531 path: "/zh/guide/markdown.html",532 component: GlobalLayout,533 beforeEnter: (to, from, next) => {534 ensureAsyncComponentsLoaded("Layout", "v-51584b68").then(next)535 },536 },537 {538 name: "v-4a237dc8",539 path: "/zh/guide/permalinks.html",540 component: GlobalLayout,541 beforeEnter: (to, from, next) => {542 ensureAsyncComponentsLoaded("Layout", "v-4a237dc8").then(next)543 },544 },545 {546 name: "v-db7effbc",547 path: "/zh/guide/using-vue.html",548 component: GlobalLayout,549 beforeEnter: (to, from, next) => {550 ensureAsyncComponentsLoaded("Layout", "v-db7effbc").then(next)551 },552 },553 {554 name: "v-03ff2544",555 path: "/zh/miscellaneous/design-concepts.html",556 component: GlobalLayout,557 beforeEnter: (to, from, next) => {558 ensureAsyncComponentsLoaded("Layout", "v-03ff2544").then(next)559 },560 },561 {562 name: "v-629d8906",563 path: "/zh/miscellaneous/local-development.html",564 component: GlobalLayout,565 beforeEnter: (to, from, next) => {566 ensureAsyncComponentsLoaded("Layout", "v-629d8906").then(next)567 },568 },569 {570 name: "v-008ba970",571 path: "/zh/miscellaneous/glossary.html",572 component: GlobalLayout,573 beforeEnter: (to, from, next) => {574 ensureAsyncComponentsLoaded("Layout", "v-008ba970").then(next)575 },576 },577 {578 name: "v-1e0d7b04",579 path: "/zh/miscellaneous/migration-guide.html",580 component: GlobalLayout,581 beforeEnter: (to, from, next) => {582 ensureAsyncComponentsLoaded("Layout", "v-1e0d7b04").then(next)583 },584 },585 {586 name: "v-156e71ae",587 path: "/zh/plugin/",588 component: GlobalLayout,589 beforeEnter: (to, from, next) => {590 ensureAsyncComponentsLoaded("Layout", "v-156e71ae").then(next)591 },592 },593 {594 path: "/zh/plugin/index.html",595 redirect: "/zh/plugin/"596 },597 {598 name: "v-c16013b0",599 path: "/zh/plugin/context-api.html",600 component: GlobalLayout,601 beforeEnter: (to, from, next) => {602 ensureAsyncComponentsLoaded("Layout", "v-c16013b0").then(next)603 },604 },605 {606 name: "v-ccb33fd8",607 path: "/zh/plugin/life-cycle.html",608 component: GlobalLayout,609 beforeEnter: (to, from, next) => {610 ensureAsyncComponentsLoaded("Layout", "v-ccb33fd8").then(next)611 },612 },613 {614 name: "v-60720370",615 path: "/zh/plugin/official/plugin-back-to-top.html",616 component: GlobalLayout,617 beforeEnter: (to, from, next) => {618 ensureAsyncComponentsLoaded("Layout", "v-60720370").then(next)619 },620 },621 {622 name: "v-0f63a530",623 path: "/zh/plugin/official/plugin-active-header-links.html",624 component: GlobalLayout,625 beforeEnter: (to, from, next) => {626 ensureAsyncComponentsLoaded("Layout", "v-0f63a530").then(next)627 },628 },629 {630 name: "v-7a9f680e",631 path: "/zh/plugin/official/plugin-blog.html",632 component: GlobalLayout,633 beforeEnter: (to, from, next) => {634 ensureAsyncComponentsLoaded("Layout", "v-7a9f680e").then(next)635 },636 },637 {638 name: "v-fe11c624",639 path: "/zh/plugin/official/plugin-google-analytics.html",640 component: GlobalLayout,641 beforeEnter: (to, from, next) => {642 ensureAsyncComponentsLoaded("Layout", "v-fe11c624").then(next)643 },644 },645 {646 name: "v-9114df6c",647 path: "/zh/plugin/official/plugin-last-updated.html",648 component: GlobalLayout,649 beforeEnter: (to, from, next) => {650 ensureAsyncComponentsLoaded("Layout", "v-9114df6c").then(next)651 },652 },653 {654 name: "v-e5c827f0",655 path: "/zh/plugin/official/plugin-medium-zoom.html",656 component: GlobalLayout,657 beforeEnter: (to, from, next) => {658 ensureAsyncComponentsLoaded("Layout", "v-e5c827f0").then(next)659 },660 },661 {662 name: "v-240d2588",663 path: "/zh/plugin/official/plugin-nprogress.html",664 component: GlobalLayout,665 beforeEnter: (to, from, next) => {666 ensureAsyncComponentsLoaded("Layout", "v-240d2588").then(next)667 },668 },669 {670 name: "v-024ec828",671 path: "/zh/plugin/official/plugin-pwa.html",672 component: GlobalLayout,673 beforeEnter: (to, from, next) => {674 ensureAsyncComponentsLoaded("Layout", "v-024ec828").then(next)675 },676 },677 {678 name: "v-ba834d30",679 path: "/zh/plugin/official/plugin-register-components.html",680 component: GlobalLayout,681 beforeEnter: (to, from, next) => {682 ensureAsyncComponentsLoaded("Layout", "v-ba834d30").then(next)683 },684 },685 {686 name: "v-456df90c",687 path: "/zh/plugin/option-api.html",688 component: GlobalLayout,689 beforeEnter: (to, from, next) => {690 ensureAsyncComponentsLoaded("Layout", "v-456df90c").then(next)691 },692 },693 {694 name: "v-1fad9fc2",695 path: "/zh/plugin/official/plugin-search.html",696 component: GlobalLayout,697 beforeEnter: (to, from, next) => {698 ensureAsyncComponentsLoaded("Layout", "v-1fad9fc2").then(next)699 },700 },701 {702 name: "v-7f65df24",703 path: "/zh/plugin/using-a-plugin.html",704 component: GlobalLayout,705 beforeEnter: (to, from, next) => {706 ensureAsyncComponentsLoaded("Layout", "v-7f65df24").then(next)707 },708 },709 {710 name: "v-32270544",711 path: "/zh/plugin/writing-a-plugin.html",712 component: GlobalLayout,713 beforeEnter: (to, from, next) => {714 ensureAsyncComponentsLoaded("Layout", "v-32270544").then(next)715 },716 },717 {718 name: "v-df9adcba",719 path: "/zh/theme/",720 component: GlobalLayout,721 beforeEnter: (to, from, next) => {722 ensureAsyncComponentsLoaded("Layout", "v-df9adcba").then(next)723 },724 },725 {726 path: "/zh/theme/index.html",727 redirect: "/zh/theme/"728 },729 {730 name: "v-26f723e8",731 path: "/zh/theme/blog-theme.html",732 component: GlobalLayout,733 beforeEnter: (to, from, next) => {734 ensureAsyncComponentsLoaded("Layout", "v-26f723e8").then(next)735 },736 },737 {738 name: "v-7c12ebb0",739 path: "/zh/theme/default-theme-config.html",740 component: GlobalLayout,741 beforeEnter: (to, from, next) => {742 ensureAsyncComponentsLoaded("Layout", "v-7c12ebb0").then(next)743 },744 },745 {746 name: "v-51e8742e",747 path: "/zh/theme/inheritance.html",748 component: GlobalLayout,749 beforeEnter: (to, from, next) => {750 ensureAsyncComponentsLoaded("Layout", "v-51e8742e").then(next)751 },752 },753 {754 name: "v-e739d730",755 path: "/zh/theme/option-api.html",756 component: GlobalLayout,757 beforeEnter: (to, from, next) => {758 ensureAsyncComponentsLoaded("Layout", "v-e739d730").then(next)759 },760 },761 {762 name: "v-2594b9da",763 path: "/zh/theme/using-a-theme.html",764 component: GlobalLayout,765 beforeEnter: (to, from, next) => {766 ensureAsyncComponentsLoaded("Layout", "v-2594b9da").then(next)767 },768 },769 {770 name: "v-3e75e6ea",771 path: "/zh/theme/writing-a-theme.html",772 component: GlobalLayout,773 beforeEnter: (to, from, next) => {774 ensureAsyncComponentsLoaded("Layout", "v-3e75e6ea").then(next)775 },776 },777 {778 path: '*',779 component: GlobalLayout780 }...
bootstrap.js
Source:bootstrap.js
...93 this.cont.nesting = 0;94 setTimeout(next, 0);95 }96 else {97 next();98 }99 }100}101Factor.prototype.push_data = function(v, next) {102 factor.cont.data_stack.push(v);103 factor.call_next(next);104}105Factor.prototype.use = function(v, next) {106 factor.cont.data_stack.push(v);107 factor.get_word("kernel", "use+").execute(next);108}109Factor.prototype.using = function(v, next) {110 factor.cont.data_stack.push(v);111 factor.get_word("kernel", "using").execute(next);112}113var fjsc_repl = false;114Factor.prototype.set_in = function(v, next) {115 factor.cont.data_stack.push(v);116 factor.get_word("kernel", "set-in").execute(next);117 if (fjsc_repl) {118 fjsc_repl.ps = '( ' + v + ' )';119 }120}121Factor.prototype.get_word = function(vocab,name) {122 return factor.vocabs[vocab][name];123}124Factor.prototype.find_word = function(name) {125 for(var v = 0; v<factor.using_vocabs.length; ++v) {126 var w = factor.vocabs[factor.using_vocabs[v]][name];127 if(w)128 return w;129 }130 return false;131}132Factor.prototype.add_word = function(vocab,name, source, func) {133 var v = factor.vocabs[vocab];134 if(!v) {135 v = { };136 factor.vocabs[vocab] = v;137 }138 v[name] = new Word(vocab,name,source,func);139}140Factor.prototype.remove_word = function(vocab,name) {141 var v = factor.vocabs[vocab];142 if(!v) {143 v = { };144 factor.vocabs[vocab] = v;145 }146 delete v[name];147}148 149Factor.prototype.define_word = function(name, source, func, next) {150 factor.vocabs[factor.in_vocab][name] = new Word(factor.in_vocab, name, source, function(next) {151 var old = factor.cont.next;152 factor.cont.next = function() {153 factor.cont.next = old;154 factor.call_next(next);155 }156 func();157 });158 factor.call_next(next);159}160Factor.prototype.make_quotation = function(source, func) {161 return new Word("quotations", "quotation", source, function(next) {162 var old = factor.cont.next;163 factor.cont.next = function() {164 factor.cont.next = old;165 factor.call_next(next);166 }167 func();168 });169}170Factor.prototype.server_eval = function(text, handler, next) {171 var self = this;172 $.post("compile", { code: text }, function(result) {173 factor.run_eval = function(func) {174 factor.cont.next = function() { handler(text,result); } 175 try {176 func(factor);177 } catch(ex) {178 alert("Error Parsing Javascript: " + ex); 179 handler(text, result);180 }181 if(next) 182 factor.call_next(next);183 }184 try {185 eval("factor.run_eval" + result);186 } catch(e) {187 factor.run_eval(function() { alert("Error Parsing Javascript: " + e); });188 }189 });190}191/* kernel-internals vocabulary */192factor.add_word("kernel-internals", ">n", "primitive", function(next) {193 var data_stack = factor.cont.data_stack;194 var name_stack = factor.cont.name_stack;195 name_stack.push(data_stack.pop());196 factor.call_next(next);197});198factor.add_word("kernel-internals", "n>", "primitive", function(next) {199 var data_stack = factor.cont.data_stack;200 var name_stack = factor.cont.name_stack;201 data_stack.push(name_stack.pop());202 factor.call_next(next);203});204/* Kernel Vocabulary */205factor.add_word("kernel","dup", "primitive", function(next) {206 var stack = factor.cont.data_stack;207 stack[stack.length] = stack[stack.length-1];208 factor.call_next(next);209});210factor.add_word("kernel", "drop", "primitive", function(next) {211 factor.cont.data_stack.pop();212 factor.call_next(next);213});214factor.add_word("kernel", "nip", "primitive", function(next) {215 var stack = factor.cont.data_stack;216 stack[stack.length-2] = stack[stack.length-1];217 stack.pop();218 factor.call_next(next);219});220factor.add_word("kernel", "over", "primitive", function(next) {221 var stack = factor.cont.data_stack;222 stack[stack.length] = stack[stack.length-2];223 factor.call_next(next);224});225factor.add_word("kernel", "pick", "primitive", function(next) {226 var stack = factor.cont.data_stack;227 stack[stack.length] = stack[stack.length-3];228 factor.call_next(next);229});230factor.add_word("kernel", "swap", "primitive", function(next) {231 var stack = factor.cont.data_stack;232 var temp = stack[stack.length-2];233 stack[stack.length-2] = stack[stack.length-1];234 stack[stack.length-1] = temp;235 factor.call_next(next);236});237factor.add_word("kernel", ">r", "primitive", function(next) {238 var data_stack = factor.cont.data_stack;239 var retain_stack = factor.cont.retain_stack;240 retain_stack.push(data_stack.pop());241 factor.call_next(next);242});243factor.add_word("kernel", "r>", "primitive", function(next) {244 var data_stack = factor.cont.data_stack;245 var retain_stack = factor.cont.retain_stack;246 data_stack.push(retain_stack.pop());247 factor.call_next(next);248});249factor.add_word("kernel", "call", "primitive", function(next) {250 var quot = factor.cont.data_stack.pop();251 quot.execute(next);252});253factor.add_word("kernel", "execute", "primitive", function(next) {254 var quot = factor.cont.data_stack.pop();255 quot.execute(next);256});257factor.add_word("kernel", "clear", "primitive", function(next) {258 factor.cont.data_stack = [];259 factor.cont.retain_stack = [];260 factor.call_next(next);261});262factor.add_word("kernel", "if", "primitive", function(next) { 263 var stack = factor.cont.data_stack;264 var else_quot = stack.pop();265 var then_quot = stack.pop();266 var condition = stack.pop();267 if(condition) {268 then_quot.execute(next);269 } else {270 else_quot.execute(next);271 }272});273factor.add_word("kernel", "f", "primitive", function(next) { 274 factor.cont.data_stack.push(false);275 factor.call_next(next);276});277factor.add_word("kernel", "t", "primitive", function(next) { 278 factor.cont.data_stack.push(true);279 factor.call_next(next);280});281factor.add_word("kernel", "=", "primitive", function(next) { 282 var stack = factor.cont.data_stack;283 stack.push(stack.pop()==stack.pop());284 factor.call_next(next);285});286factor.add_word("kernel", "bootstrap", "primitive", function(next) { 287 factor.cont.data_stack.push("/responder/fjsc-resources/bootstrap.factor");288 factor.get_word("parser", "run-file").execute(next);289});290factor.add_word("kernel", "callcc0", "primitive", function(next) { 291 var data_stack = factor.cont.data_stack;292 var quot = data_stack.pop();293 var new_cont = factor.cont.clone(); 294 var old_next = factor.cont.next;295 factor.cont.next = function() {296 factor.cont.next = old_next;297 factor.call_next(next);298 }299 new_cont.data_stack.push(factor.cont);300 factor.cont = new_cont;301 quot.execute(next); 302});303factor.add_word("kernel", "callcc1", "primitive", function(next) { 304 factor.get_word("kernel", "callcc0").execute(next);305});306factor.add_word("kernel", "continue", "primitive", function(next) { 307 var data_stack = factor.cont.data_stack;308 var cont = data_stack.pop(); 309 factor.cont = cont.clone();310 factor.call_next(cont.next);311});312factor.add_word("kernel", "continue-with", "primitive", function(next) { 313 var data_stack = factor.cont.data_stack;314 var cont = data_stack.pop(); 315 var data = data_stack.pop(); 316 factor.cont = cont.clone();317 factor.cont.data_stack.push(data);318 factor.call_next(cont.next);319});320factor.add_word("kernel", "set-in", "primitive", function(next) { 321 var stack = factor.cont.data_stack;322 var vocab = stack.pop();323 var v = factor.vocabs[vocab];324 if(!v) {325 v = { };326 factor.vocabs[vocab] = v;327 }328 factor.in_vocab = vocab;329 factor.call_next(next); 330});331factor.add_word("kernel", "current-vocab", "primitive", function(next) { 332 var stack = factor.cont.data_stack;333 stack.push(factor.in_vocab);334 factor.call_next(next); 335});336factor.add_word("kernel", "use+", "primitive", function(next) { 337 var stack = factor.cont.data_stack;338 var vocab = stack.pop();339 var v = factor.vocabs[vocab];340 if(!v) {341 v = { };342 factor.vocabs[vocab] = v;343 }344 factor.using_vocabs.push(vocab);345 factor.call_next(next); 346});347factor.add_word("kernel", "using", "primitive", function(next) { 348 var stack = factor.cont.data_stack;349 var vocabs = stack.pop();350 for(var i=0;i<vocabs.length;++i) { 351 var v = factor.vocabs[vocabs[i]];352 if(!v) {353 v = { };354 factor.vocabs[vocabs[i]] = v;355 }356 factor.using_vocabs.push(vocabs[i]);357 }358 factor.call_next(next); 359});360factor.add_word("kernel", "current-using", "primitive", function(next) { 361 var stack = factor.cont.data_stack;362 stack.push(factor.using_vocabs);363 factor.call_next(next); 364});365factor.add_word("kernel", "forget", "primitive", function(next) { 366 var stack = factor.cont.data_stack;367 var word = stack.pop();368 factor.remove_word(word.vocab, word.name);369 factor.call_next(next); 370});371factor.add_word("kernel", ">function", "primitive", function(next) { 372 var stack = factor.cont.data_stack;373 var word = stack.pop();374 stack.push(function() { word.func(function() { }) });375 factor.call_next(next); 376});377factor.add_word("kernel", "curry", "primitive", function(next) { 378 var stack = factor.cont.data_stack;379 var quot = stack.pop();380 var value = stack.pop();381 382 stack.push(factor.make_quotation("quotation", function(next) {383 factor.cont.data_stack.push(value); 384 quot.execute(factor.cont.next);385 }));386 factor.call_next(next);387});388/* Math vocabulary */389factor.add_word("math", "*", "primitive", function(next) {390 var stack = factor.cont.data_stack;391 stack.push(stack.pop() * stack.pop());392 factor.call_next(next);393});394factor.add_word("math", "+", "primitive", function(next) {395 var stack = factor.cont.data_stack;396 stack.push(stack.pop() + stack.pop());397 factor.call_next(next);398});399factor.add_word("math", "-", "primitive", function(next) {400 var stack = factor.cont.data_stack;401 var v1 = stack.pop();402 var v2 = stack.pop();403 stack.push(v2 - v1);404 factor.call_next(next);405});406factor.add_word("math", "/", "primitive", function(next) {407 var stack = factor.cont.data_stack;408 var v1 = stack.pop();409 var v2 = stack.pop();410 stack.push(v2 / v1);411 factor.call_next(next);412});413factor.add_word("parser", "run-file", "primitive", function(next) { 414 var stack = factor.cont.data_stack;415 var url = stack.pop();416 $.get(url, function(result) {417 factor.server_eval(result, function() { }, next);418 });419});420factor.add_word("alien", "alien-invoke", "primitive", function(next) { 421 var stack = factor.cont.data_stack;422 var arg_types = stack.pop();423 var method_name = stack.pop();424 var library_name = stack.pop();425 var return_values = stack.pop();426 var obj = stack.pop();427 var args = [ ];428 for(var i = 0; i < arg_types.length; ++i) {429 args[i] = stack.pop();430 }431 var func = obj[method_name];432 if(method_name=="alert") {433 func = function(a) { alert(a); }434 }435 var v = func.apply(obj, args.reverse());436 if(return_values.length > 0)437 stack.push(v);438 factor.call_next(next);439});440factor.add_word("alien", "alien-property", "primitive", function(next) { 441 var stack = factor.cont.data_stack;442 var obj = stack.pop();443 var property_name = stack.pop();444 var v = obj[property_name];445 stack.push(v);446 factor.call_next(next);447});448factor.add_word("alien", "set-alien-property", "primitive", function(next) { 449 var stack = factor.cont.data_stack;450 var obj = stack.pop();451 var property_name = stack.pop();452 var data = stack.pop();453 obj[property_name] = v;454 factor.call_next(next);455});456factor.add_word("alien", "uneval", "primitive", function(next) {457 var stack = factor.cont.data_stack;458 stack.push(uneval(stack.pop()));459 factor.call_next(next);460});461factor.add_word("words", "vocabs", "primitive", function(next) { 462 var stack = factor.cont.data_stack;463 var result = [];464 for(v in factor.vocabs) {465 result.push(v);466 }467 stack.push(result);468 factor.call_next(next);469});470factor.add_word("words", "words", "primitive", function(next) { 471 var stack = factor.cont.data_stack;472 var vocab = factor.vocabs[stack.pop()];473 var result = [];474 for(w in vocab) {475 result.push(vocab[w]);476 }477 stack.push(result);478 factor.call_next(next);479});480factor.add_word("words", "all-words", "primitive", function(next) { 481 var stack = factor.cont.data_stack;482 var result = [];483 for(v in factor.vocabs) {484 for(w in factor.vocabs[v]) {485 result.push(factor.vocabs[v][w]);486 }487 }488 stack.push(result);489 factor.call_next(next);490});491/* Sequences vocabulary */492factor.add_word("sequences", "nth", "primitive", function(next) { 493 var stack = factor.cont.data_stack;494 var seq = stack.pop();495 var index = stack.pop();496 stack.push(seq[index]);497 factor.call_next(next);498});499factor.add_word("sequences", "first", "primitive", function(next) { 500 var stack = factor.cont.data_stack;501 var seq = stack.pop();502 stack.push(seq[0]);503 factor.call_next(next);504});505factor.add_word("sequences", "second", "primitive", function(next) { 506 var stack = factor.cont.data_stack;507 var seq = stack.pop();508 stack.push(seq[1]);509 factor.call_next(next);510});511factor.add_word("sequences", "third", "primitive", function(next) { 512 var stack = factor.cont.data_stack;513 var seq = stack.pop();514 stack.push(seq[2]);515 factor.call_next(next);516});517factor.add_word("sequences", "fourth", "primitive", function(next) { 518 var stack = factor.cont.data_stack;519 var seq = stack.pop();520 stack.push(seq[0]);521 factor.call_next(next);522});523factor.add_word("sequences", "first2", "primitive", function(next) { 524 var stack = factor.cont.data_stack;525 var seq = stack.pop();526 stack.push(seq[0],seq[1]);527 factor.call_next(next);528});529factor.add_word("sequences", "first3", "primitive", function(next) { 530 var stack = factor.cont.data_stack;531 var seq = stack.pop();532 stack.push(seq[0],seq[1],seq[2]);533 factor.call_next(next);534});535factor.add_word("sequences", "first4", "primitive", function(next) { 536 var stack = factor.cont.data_stack;537 var seq = stack.pop();538 stack.push(seq[0],seq[1],seq[2],seq[3]);539 factor.call_next(next);540});541factor.add_word("sequences", "each", "primitive", function(next) { 542 var stack = factor.cont.data_stack;543 var quot = stack.pop();544 var seq = stack.pop();545 for(var i=0;i<seq.length;++i) { 546 stack.push(seq[i]);547 quot.execute();548 }549 factor.call_next(next);550});551factor.add_word("sequences", "map", "primitive", function(next) { 552 var stack = factor.cont.data_stack;553 var quot = stack.pop();554 var seq = stack.pop();555 var result = [ ];556 for(var i=0;i<seq.length;++i) { 557 stack.push(seq[i]);558 quot.execute();559 result[i]=stack.pop();560 }561 stack.push(result);562 factor.call_next(next);563});564factor.add_word("sequences", "reduce", "primitive", function(next) { 565 var stack = factor.cont.data_stack;566 var quot = stack.pop();567 var prev = stack.pop();568 var seq = stack.pop();569 for(var i=0;i<seq.length;++i) { 570 stack.push(prev);571 stack.push(seq[i]);572 quot.execute();573 prev=stack.pop();Al574 }575 stack.push(prev);576 factor.call_next(next);577});578/* hashtables vocabulary */579factor.add_word("hashtables", "alist>hash", "primitive", function(next) { 580 var stack = factor.cont.data_stack;581 var alist = stack.pop();582 stack.push(new Hashtable().fromAlist(alist));583 factor.call_next(next);584});585factor.add_word("hashtables", "hash>alist", "primitive", function(next) { 586 var stack = factor.cont.data_stack;587 var hashtable = stack.pop();588 stack.push(hashtable.toAlist());589 factor.call_next(next);590});591factor.add_word("hashtables", "hash", "primitive", function(next) { 592 var stack = factor.cont.data_stack;593 var hashtable = stack.pop();594 var key = stack.pop();595 stack.push(hashtable.get(key));596 factor.call_next(next);597});598factor.add_word("hashtables", "set-hash", "primitive", function(next) { 599 var stack = factor.cont.data_stack;600 var hashtable = stack.pop();601 var key = stack.pop();602 var value = stack.pop();603 hashtable.set(key, value);604 factor.call_next(next);605});606factor.add_word("sequences", "hash-each", "primitive", function(next) { 607 var stack = factor.cont.data_stack;608 var quot = stack.pop();609 var hashtable = stack.pop().table;610 for(k in hashtable) { 611 var v = hashtable[k]; 612 stack.push(k, v);613 quot.execute();614 }615 factor.call_next(next);616});617factor.add_word("sequences", "hash-map", "primitive", function(next) { 618 var stack = factor.cont.data_stack;619 var quot = stack.pop();620 var hashtable = stack.pop().table;621 var result = [ ];622 for(k in hashtable) { 623 var v = hashtable[k];624 stack.push(k,v);625 quot.execute();626 result.push(stack.pop());627 }628 stack.push(result);629 factor.call_next(next);630});631/* browser-dom vocab */632factor.add_word("browser-dom", "window", "primitive", function(next) { 633 factor.cont.data_stack.push(window);634 factor.call_next(next);635});636factor.add_word("browser-dom", "document", "primitive", function(next) { 637 factor.cont.data_stack.push(document);638 factor.call_next(next);639});640factor.add_word("browser-dom", "load-script", "primitive", function(next) { 641 var stack = factor.cont.data_stack;642 $("head/script#jsonrequest").remove();643 var script = document.createElement("script");644 script.id = "jsonrequest"; 645 script.type = "text/javascript";646 script.src = stack.pop();647 $("head").append(script);648 factor.call_next(next); 649});650var handle_json = false;651factor.add_word("browser-dom", "json-request", "primitive", function(next) { 652 var stack = factor.cont.data_stack;653 handle_json = function(data) { 654 factor.cont.data_stack.push(data);655 factor.call_next(next);656 }657 factor.get_word("browser-dom", "load-script").execute();...
tags.js
Source:tags.js
...35 async.parallel([36 async.apply(db.setAdd, 'topic:' + tid + ':tags', tags),37 async.apply(db.sortedSetsAdd, keys, timestamp, tid),38 ], function (err) {39 next(err);40 });41 },42 function (next) {43 async.each(tags, updateTagCount, next);44 },45 ], callback);46 };47 function filterCategoryTags(tags, tid, callback) {48 async.waterfall([49 function (next) {50 Topics.getTopicField(tid, 'cid', next);51 },52 function (cid, next) {53 db.getSortedSetRange('cid:' + cid + ':tag:whitelist', 0, -1, next);54 },55 function (tagWhitelist, next) {56 if (!tagWhitelist.length) {57 return next(null, tags);58 }59 tags = tags.filter(function (tag) {60 return tagWhitelist.indexOf(tag) !== -1;61 });62 next(null, tags);63 },64 ], callback);65 }66 Topics.createEmptyTag = function (tag, callback) {67 if (!tag) {68 return callback(new Error('[[error:invalid-tag]]'));69 }70 tag = utils.cleanUpTag(tag, meta.config.maximumTagLength);71 if (tag.length < (meta.config.minimumTagLength || 3)) {72 return callback(new Error('[[error:tag-too-short]]'));73 }74 async.waterfall([75 function (next) {76 db.isSortedSetMember('tags:topic:count', tag, next);77 },78 function (isMember, next) {79 if (isMember) {80 return next();81 }82 db.sortedSetAdd('tags:topic:count', 0, tag, next);83 },84 ], callback);85 };86 Topics.updateTags = function (data, callback) {87 async.eachSeries(data, function (tagData, next) {88 db.setObject('tag:' + tagData.value, {89 color: tagData.color,90 bgColor: tagData.bgColor,91 }, next);92 }, callback);93 };94 Topics.renameTags = function (data, callback) {95 async.eachSeries(data, function (tagData, next) {96 renameTag(tagData.value, tagData.newName, next);97 }, callback);98 };99 function renameTag(tag, newTagName, callback) {100 if (!newTagName || tag === newTagName) {101 return setImmediate(callback);102 }103 async.waterfall([104 function (next) {105 Topics.createEmptyTag(newTagName, next);106 },107 function (next) {108 batch.processSortedSet('tag:' + tag + ':topics', function (tids, next) {109 async.waterfall([110 function (next) {111 db.sortedSetScores('tag:' + tag + ':topics', tids, next);112 },113 function (scores, next) {114 db.sortedSetAdd('tag:' + newTagName + ':topics', scores, tids, next);115 },116 function (next) {117 var keys = tids.map(function (tid) {118 return 'topic:' + tid + ':tags';119 });120 async.series([121 async.apply(db.sortedSetRemove, 'tag:' + tag + ':topics', tids),122 async.apply(db.setsRemove, keys, tag),123 async.apply(db.setsAdd, keys, newTagName),124 ], next);125 },126 ], next);127 }, next);128 },129 function (next) {130 Topics.deleteTag(tag, next);131 },132 function (next) {133 updateTagCount(newTagName, next);134 },135 ], callback);136 }137 function updateTagCount(tag, callback) {138 callback = callback || function () {};139 async.waterfall([140 function (next) {141 Topics.getTagTopicCount(tag, next);142 },143 function (count, next) {144 count = count || 0;145 db.sortedSetAdd('tags:topic:count', count, tag, next);146 },147 ], callback);148 }149 Topics.getTagTids = function (tag, start, stop, callback) {150 db.getSortedSetRevRange('tag:' + tag + ':topics', start, stop, callback);151 };152 Topics.getTagTopicCount = function (tag, callback) {153 db.sortedSetCard('tag:' + tag + ':topics', callback);154 };155 Topics.deleteTags = function (tags, callback) {156 if (!Array.isArray(tags) || !tags.length) {157 return callback();158 }159 async.series([160 function (next) {161 removeTagsFromTopics(tags, next);162 },163 function (next) {164 var keys = tags.map(function (tag) {165 return 'tag:' + tag + ':topics';166 });167 db.deleteAll(keys, next);168 },169 function (next) {170 db.sortedSetRemove('tags:topic:count', tags, next);171 },172 function (next) {173 db.deleteAll(tags.map(function (tag) {174 return 'tag:' + tag;175 }), next);176 },177 ], function (err) {178 callback(err);179 });180 };181 function removeTagsFromTopics(tags, callback) {182 async.eachLimit(tags, 50, function (tag, next) {183 db.getSortedSetRange('tag:' + tag + ':topics', 0, -1, function (err, tids) {184 if (err || !tids.length) {185 return next(err);186 }187 var keys = tids.map(function (tid) {188 return 'topic:' + tid + ':tags';189 });190 db.setsRemove(keys, tag, next);191 });192 }, callback);193 }194 Topics.deleteTag = function (tag, callback) {195 Topics.deleteTags([tag], callback);196 };197 Topics.getTags = function (start, stop, callback) {198 async.waterfall([199 function (next) {200 db.getSortedSetRevRangeWithScores('tags:topic:count', start, stop, next);201 },202 function (tags, next) {203 Topics.getTagData(tags, next);204 },205 ], callback);206 };207 Topics.getTagData = function (tags, callback) {208 var keys = tags.map(function (tag) {209 return 'tag:' + tag.value;210 });211 async.waterfall([212 function (next) {213 db.getObjects(keys, next);214 },215 function (tagData, next) {216 tags.forEach(function (tag, index) {217 tag.valueEscaped = validator.escape(String(tag.value));218 tag.color = tagData[index] ? tagData[index].color : '';219 tag.bgColor = tagData[index] ? tagData[index].bgColor : '';220 });221 next(null, tags);222 },223 ], callback);224 };225 Topics.getTopicTags = function (tid, callback) {226 db.getSetMembers('topic:' + tid + ':tags', callback);227 };228 Topics.getTopicsTags = function (tids, callback) {229 var keys = tids.map(function (tid) {230 return 'topic:' + tid + ':tags';231 });232 db.getSetsMembers(keys, callback);233 };234 Topics.getTopicTagsObjects = function (tid, callback) {235 Topics.getTopicsTagsObjects([tid], function (err, data) {236 callback(err, Array.isArray(data) && data.length ? data[0] : []);237 });238 };239 Topics.getTopicsTagsObjects = function (tids, callback) {240 var sets = tids.map(function (tid) {241 return 'topic:' + tid + ':tags';242 });243 var uniqueTopicTags;244 var topicTags;245 async.waterfall([246 function (next) {247 db.getSetsMembers(sets, next);248 },249 function (_topicTags, next) {250 topicTags = _topicTags;251 uniqueTopicTags = _.uniq(_.flatten(topicTags));252 var tags = uniqueTopicTags.map(function (tag) {253 return { value: tag };254 });255 async.parallel({256 tagData: function (next) {257 Topics.getTagData(tags, next);258 },259 counts: function (next) {260 db.sortedSetScores('tags:topic:count', uniqueTopicTags, next);261 },262 }, next);263 },264 function (results, next) {265 results.tagData.forEach(function (tag, index) {266 tag.score = results.counts[index] ? results.counts[index] : 0;267 });268 var tagData = _.zipObject(uniqueTopicTags, results.tagData);269 topicTags.forEach(function (tags, index) {270 if (Array.isArray(tags)) {271 topicTags[index] = tags.map(function (tag) { return tagData[tag]; });272 topicTags[index].sort(function (tag1, tag2) {273 return tag2.score - tag1.score;274 });275 }276 });277 next(null, topicTags);278 },279 ], callback);280 };281 Topics.updateTopicTags = function (tid, tags, callback) {282 callback = callback || function () {};283 async.waterfall([284 function (next) {285 Topics.deleteTopicTags(tid, next);286 },287 function (next) {288 Topics.getTopicField(tid, 'timestamp', next);289 },290 function (timestamp, next) {291 Topics.createTags(tags, tid, timestamp, next);292 },293 ], callback);294 };295 Topics.deleteTopicTags = function (tid, callback) {296 async.waterfall([297 function (next) {298 Topics.getTopicTags(tid, next);299 },300 function (tags, next) {301 async.series([302 function (next) {303 db.delete('topic:' + tid + ':tags', next);304 },305 function (next) {306 var sets = tags.map(function (tag) {307 return 'tag:' + tag + ':topics';308 });309 db.sortedSetsRemove(sets, tid, next);310 },311 function (next) {312 async.each(tags, function (tag, next) {313 updateTagCount(tag, next);314 }, next);315 },316 ], next);317 },318 ], function (err) {319 callback(err);320 });321 };322 Topics.searchTags = function (data, callback) {323 if (!data || !data.query) {324 return callback(null, []);325 }326 async.waterfall([327 function (next) {328 if (plugins.hasListeners('filter:topics.searchTags')) {329 plugins.fireHook('filter:topics.searchTags', { data: data }, next);330 } else {331 findMatches(data.query, 0, next);332 }333 },334 function (result, next) {335 plugins.fireHook('filter:tags.search', { data: data, matches: result.matches }, next);336 },337 function (result, next) {338 next(null, result.matches);339 },340 ], callback);341 };342 Topics.autocompleteTags = function (data, callback) {343 if (!data || !data.query) {344 return callback(null, []);345 }346 async.waterfall([347 function (next) {348 if (plugins.hasListeners('filter:topics.autocompleteTags')) {349 plugins.fireHook('filter:topics.autocompleteTags', { data: data }, next);350 } else {351 findMatches(data.query, data.cid, next);352 }353 },354 function (result, next) {355 next(null, result.matches);356 },357 ], callback);358 };359 function findMatches(query, cid, callback) {360 async.waterfall([361 function (next) {362 if (parseInt(cid, 10)) {363 db.getSortedSetRange('cid:' + cid + ':tag:whitelist', 0, -1, next);364 } else {365 setImmediate(next, null, []);366 }367 },368 function (tagWhitelist, next) {369 if (tagWhitelist.length) {370 setImmediate(next, null, tagWhitelist);371 } else {372 db.getSortedSetRevRange('tags:topic:count', 0, -1, next);373 }374 },375 function (tags, next) {376 query = query.toLowerCase();377 var matches = [];378 for (var i = 0; i < tags.length; i += 1) {379 if (tags[i].toLowerCase().startsWith(query)) {380 matches.push(tags[i]);381 if (matches.length > 19) {382 break;383 }384 }385 }386 matches = matches.sort(function (a, b) {387 return a > b;388 });389 next(null, { matches: matches });390 },391 ], callback);392 }393 Topics.searchAndLoadTags = function (data, callback) {394 var searchResult = {395 tags: [],396 matchCount: 0,397 pageCount: 1,398 };399 if (!data || !data.query || !data.query.length) {400 return callback(null, searchResult);401 }402 async.waterfall([403 function (next) {404 Topics.searchTags(data, next);405 },406 function (tags, next) {407 async.parallel({408 counts: function (next) {409 db.sortedSetScores('tags:topic:count', tags, next);410 },411 tagData: function (next) {412 tags = tags.map(function (tag) {413 return { value: tag };414 });415 Topics.getTagData(tags, next);416 },417 }, next);418 },419 function (results, next) {420 results.tagData.forEach(function (tag, index) {421 tag.score = results.counts[index];422 });423 results.tagData.sort(function (a, b) {424 return b.score - a.score;425 });426 searchResult.tags = results.tagData;427 searchResult.matchCount = results.tagData.length;428 searchResult.pageCount = 1;429 next(null, searchResult);430 },431 ], callback);432 };433 Topics.getRelatedTopics = function (topicData, uid, callback) {434 if (plugins.hasListeners('filter:topic.getRelatedTopics')) {435 return plugins.fireHook('filter:topic.getRelatedTopics', { topic: topicData, uid: uid }, callback);436 }437 var maximumTopics = parseInt(meta.config.maximumRelatedTopics, 10) || 0;438 if (maximumTopics === 0 || !topicData.tags || !topicData.tags.length) {439 return callback(null, []);440 }441 maximumTopics = maximumTopics || 5;442 async.waterfall([443 function (next) {444 async.map(topicData.tags, function (tag, next) {445 Topics.getTagTids(tag.value, 0, 5, next);446 }, next);447 },448 function (tids, next) {449 tids = _.shuffle(_.uniq(_.flatten(tids))).slice(0, maximumTopics);450 Topics.getTopics(tids, uid, next);451 },452 function (topics, next) {453 topics = topics.filter(function (topic) {454 return topic && !topic.deleted && parseInt(topic.uid, 10) !== parseInt(uid, 10);455 });456 next(null, topics);457 },458 ], callback);459 };...
General.js
Source:General.js
1'use strict';2var General = require('./GeneralService');3module.exports.addmultisigaddress = function addmultisigaddress (req, res, next) {4 General.addmultisigaddress(req.swagger.params, res, next);5};6module.exports.dumpprivkey = function dumpprivkey (req, res, next) {7 General.dumpprivkey(req.swagger.params, res, next);8};9module.exports.dumpwallet = function dumpwallet (req, res, next) {10 General.dumpwallet(req.swagger.params, res, next);11};12module.exports.encryptwallet = function encryptwallet (req, res, next) {13 General.encryptwallet(req.swagger.params, res, next);14};15module.exports.generate = function generate (req, res, next) {16 General.generate(req.swagger.params, res, next);17};18module.exports.generatepublickey = function generatepublickey (req, res, next) {19 General.generatepublickey(req.swagger.params, res, next);20};21module.exports.getaccount = function getaccount (req, res, next) {22 General.getaccount(req.swagger.params, res, next);23};24module.exports.getaccountaddress = function getaccountaddress (req, res, next) {25 General.getaccountaddress(req.swagger.params, res, next);26};27module.exports.getaddressesbyaccount = function getaddressesbyaccount (req, res, next) {28 General.getaddressesbyaccount(req.swagger.params, res, next);29};30module.exports.getbalance = function getbalance (req, res, next) {31 General.getbalance(req.swagger.params, res, next);32};33module.exports.getblock = function getblock (req, res, next) {34 General.getblock(req.swagger.params, res, next);35};36module.exports.getblockchaininfo = function getblockchaininfo (req, res, next) {37 General.getblockchaininfo(req.swagger.params, res, next);38};39module.exports.getblockcount = function getblockcount (req, res, next) {40 General.getblockcount(req.swagger.params, res, next);41};42module.exports.getinfo = function getinfo (req, res, next) {43 General.getinfo(req.swagger.params, res, next);44};45module.exports.getmempoolinfo = function getmempoolinfo (req, res, next) {46 General.getmempoolinfo(req.swagger.params, res, next);47}48module.exports.getdifficulty = function getdifficulty (req, res, next) {49 General.getdifficulty(req.swagger.params, res, next);50}51module.exports.getmininginfo = function getmininginfo (req, res, next) {52 General.getmininginfo(req.swagger.params, res, next);53};54module.exports.getnetworkinfo = function getnetworkinfo (req, res, next) {55 General.getnetworkinfo(req.swagger.params, res, next);56};57module.exports.getnewaddress = function getnewaddress (req, res, next) {58 General.getnewaddress(req.swagger.params, res, next);59};60module.exports.getpeerinfo = function getpeerinfo (req, res, next) {61 General.getpeerinfo(req.swagger.params, res, next);62};63module.exports.getreceivedbyaccount = function getreceivedbyaccount (req, res, next) {64 General.getreceivedbyaccount(req.swagger.params, res, next);65};66module.exports.getreceivedbyaddress = function getreceivedbyaddress (req, res, next) {67 General.getreceivedbyaddress(req.swagger.params, res, next);68};69module.exports.gettransaction = function gettransaction (req, res, next) {70 General.gettransaction(req.swagger.params, res, next);71};72module.exports.getunconfirmedbalance = function getunconfirmedbalance (req, res, next) {73 General.getunconfirmedbalance(req.swagger.params, res, next);74};75module.exports.getwalletinfo = function getwalletinfo (req, res, next) {76 General.getwalletinfo(req.swagger.params, res, next);77};78module.exports.importaddress = function importaddress (req, res, next) {79 General.importaddress(req.swagger.params, res, next);80};81module.exports.importprivkey = function importprivkey (req, res, next) {82 General.importprivkey(req.swagger.params, res, next);83};84module.exports.importpubkey = function importpubkey (req, res, next) {85 General.importpubkey(req.swagger.params, res, next);86};87module.exports.importwallet = function importwallet (req, res, next) {88 General.importwallet(req.swagger.params, res, next);89};90module.exports.listaccounts = function listaccounts (req, res, next) {91 General.listaccounts(req.swagger.params, res, next);92};93module.exports.listaddressgroupings = function listaddressgroupings (req, res, next) {94 General.listaddressgroupings(req.swagger.params, res, next);95};96module.exports.listreceivedbyaccount = function listreceivedbyaccount (req, res, next) {97 General.listreceivedbyaccount(req.swagger.params, res, next);98};99module.exports.listreceivedbyaddress = function listreceivedbyaddress (req, res, next) {100 General.listreceivedbyaddress(req.swagger.params, res, next);101};102module.exports.listsinceblock = function listsinceblock (req, res, next) {103 General.listsinceblock(req.swagger.params, res, next);104};105module.exports.listtransactions = function listtransactions (req, res, next) {106 General.listtransactions(req.swagger.params, res, next);107};108module.exports.listunspent = function listunspent (req, res, next) {109 General.listunspent(req.swagger.params, res, next);110};111module.exports.move = function move (req, res, next) {112 General.move(req.swagger.params, res, next);113};114module.exports.sendfrom = function sendfrom (req, res, next) {115 General.sendfrom(req.swagger.params, res, next);116};117module.exports.sendmany = function sendmany (req, res, next) {118 General.sendmany(req.swagger.params, res, next);119};120module.exports.sendtoaddress = function sendtoaddress (req, res, next) {121 General.sendtoaddress(req.swagger.params, res, next);122};123module.exports.signmessage = function signmessage (req, res, next) {124 General.signmessage(req.swagger.params, res, next);125};126module.exports.syscoindecoderawtransaction = function syscoindecoderawtransaction (req, res, next) {127 General.syscoindecoderawtransaction(req.swagger.params, res, next);128};129module.exports.validateaddress = function validateaddress (req, res, next) {130 General.validateaddress(req.swagger.params, res, next);131};132module.exports.verifymessage = function verifymessage (req, res, next) {133 General.verifymessage(req.swagger.params, res, next);134};135module.exports.walletlock = function walletlock (req, res, next) {136 General.walletlock(req.swagger.params, res, next);137};138module.exports.walletpassphrase = function walletpassphrase (req, res, next) {139 General.walletpassphrase(req.swagger.params, res, next);140};141module.exports.walletpassphrasechange = function walletpassphrasechange (req, res, next) {142 General.walletpassphrasechange(req.swagger.params, res, next);143};144module.exports.syscoinlistreceivedbyaddress = function syscoinlistreceivedbyaddress (req, res, next) {145 General.syscoinlistreceivedbyaddress(req.swagger.params, res, next);146};147module.exports.getaddressbalance = function getaddressbalance (req, res, next) {148 console.log(req.swagger.params);149 General.getaddressbalance(req.swagger.params, res, next);150};151module.exports.getaddressdeltas = function getaddressdeltas (req, res, next) {152 General.getaddressdeltas(req.swagger.params, res, next);153};154module.exports.getaddressmempool = function getaddressmempool (req, res, next) {155 General.getaddressmempool(req.swagger.params, res, next);156};157module.exports.syscoinsendrawtransaction = function getaddressmempool (req, res, next) {158 General.syscoinsendrawtransaction(req.swagger.params, res, next);159};160module.exports.getgenerate = function getgenerate (req, res, next) {161 General.getgenerate(req.swagger.params, res, next);162};163module.exports.setgenerate = function setgenerate (req, res, next) {164 General.setgenerate(req.swagger.params, res, next);165};166module.exports.setnetworkactive = function setnetworkactive (req, res, next) {167 General.setnetworkactive(req.swagger.params, res, next);168};169module.exports.mnsync = function mnsync (req, res, next) {170 General.mnsync(req.swagger.params, res, next);171};172module.exports.dumphdinfo = function dumphdinfo (req, res, next) {173 General.dumphdinfo(req.swagger.params, res, next);174};175module.exports.debug = function debug (req, res, next) {176 General.debug(req.swagger.params, res, next);177};178module.exports.instantsendtoaddress = function debug (req, res, next) {179 General.instantsendtoaddress(req.swagger.params, res, next);180};181module.exports.getaddresstxids = function getaddresstxids (req, res, next) {182 General.getaddresstxids(req.swagger.params, res, next);183};184module.exports.getblockhashes = function getblockhashes (req, res, next) {185 General.getblockhashes(req.swagger.params, res, next);186};187module.exports.getblockhash = function getblockhash (req, res, next) {188 General.getblockhash(req.swagger.params, res, next);189}190module.exports.getblockheaders = function getblockheaders (req, res, next) {191 General.getblockheaders(req.swagger.params, res, next);192};193module.exports.getchaintips = function getchaintips (req, res, next) {194 General.getchaintips(req.swagger.params, res, next);195};196module.exports.getspentinfo = function getspentinfo (req, res, next) {197 General.getspentinfo(req.swagger.params, res, next);198};199module.exports.getgovernanceinfo = function getgovernanceinfo (req, res, next) {200 General.getgovernanceinfo(req.swagger.params, res, next);201};202module.exports.getpoolinfo = function getpoolinfo (req, res, next) {203 General.getpoolinfo(req.swagger.params, res, next);204};205module.exports.getsuperblockbudget = function getsuperblockbudget (req, res, next) {206 General.getsuperblockbudget(req.swagger.params, res, next);207};208module.exports.gobject = function gobject (req, res, next) {209 General.gobject(req.swagger.params, res, next);210};211module.exports.masternode = function masternode (req, res, next) {212 General.masternode(req.swagger.params, res, next);213};214module.exports.masternodebroadcast = function masternodebroadcast (req, res, next) {215 General.masternodebroadcast(req.swagger.params, res, next);216};217module.exports.masternodelist = function masternodelist (req, res, next) {218 General.masternodelist(req.swagger.params, res, next);219};220module.exports.fundrawtransaction = function masternodelist (req, res, next) {221 General.fundrawtransaction(req.swagger.params, res, next);222};223module.exports.getblocktemplate = function masternodelist (req, res, next) {224 General.getblocktemplate(req.swagger.params, res, next);225};226module.exports.signrawtransaction = function masternodelist (req, res, next) {227 General.signrawtransaction(req.swagger.params, res, next);228};229module.exports.lockunspent = function masternodelist (req, res, next) {230 General.lockunspent(req.swagger.params, res, next);231};232module.exports.getaddressutxos = function getaddressutxos (req, res, next) {233 General.getaddressutxos(req.swagger.params, res, next);234};235module.exports.setaccount = function setaccount (req, res, next) {236 General.setaccount(req.swagger.params, res, next);237};238module.exports.resendwallettransactions = function resendwallettransactions (req, res, next) {239 General.resendwallettransactions(req.swagger.params, res, next);...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!