less copy protection, more size visualization
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

827 строки
24 KiB

  1. const attributionData = {
  2. sources: [
  3. {
  4. prefix: "./media/buildings/",
  5. files: [
  6. { name: "house.svg", source: null },
  7. { name: "mailbox.svg", source: null },
  8. { name: "mobile-home.svg", source: null },
  9. ],
  10. authors: [
  11. "chemicalcrux"
  12. ]
  13. },
  14. {
  15. prefix: "./media/buildings/skyscrapers/",
  16. files: [
  17. { name: "wide.svg", source: null },
  18. { name: "medium.svg", source: null },
  19. { name: "slender.svg", source: null },
  20. { name: "narrow.svg", source: null },
  21. ],
  22. authors: [
  23. "chemicalcrux"
  24. ]
  25. },
  26. {
  27. prefix: "./media/characters/abysgar/",
  28. files: [
  29. { name: "front.svg", source: "https://www.furaffinity.net/view/32424108/" }
  30. ],
  31. authors: [
  32. "clown-grin",
  33. "labratkuma"
  34. ],
  35. owners: [
  36. ]
  37. },
  38. {
  39. prefix: "./media/characters/adake/",
  40. files: [
  41. { name: "front-1.svg", source: "https://www.furaffinity.net/view/26253324/" },
  42. { name: "front-2.svg", source: "https://www.furaffinity.net/view/26253324/" },
  43. { name: "back.svg", source: "https://www.furaffinity.net/view/26253324/" },
  44. { name: "kneel.svg", source: "https://www.furaffinity.net/view/26253324/" },
  45. ],
  46. authors: [
  47. "oselotti"
  48. ],
  49. owners: [
  50. "Dialuca01"
  51. ]
  52. },
  53. {
  54. prefix: "./media/characters/aigey/",
  55. files: [
  56. { name: "side.svg", source: "https://www.furaffinity.net/view/12006265/" }
  57. ],
  58. authors: [
  59. "just-a-little-mixed-up"
  60. ],
  61. owners: [
  62. ]
  63. },
  64. {
  65. prefix: "./media/characters/akari/",
  66. files: [
  67. { name: "front.svg", source: "https://www.furaffinity.net/view/21329356/" }
  68. ],
  69. authors: [
  70. "spyropurple"
  71. ],
  72. owners: [
  73. ]
  74. },
  75. {
  76. prefix: "./media/characters/alicia/",
  77. files: [
  78. { name: "anthro.svg", source: "https://www.furaffinity.net/view/31363235/" }
  79. ],
  80. authors: [
  81. "helisa-adopts",
  82. "chesta"
  83. ],
  84. owners: [
  85. "little-big-x110"
  86. ]
  87. },
  88. {
  89. prefix: "./media/characters/alicia/",
  90. files: [
  91. { name: "feral.svg", source: "https://www.furaffinity.net/view/34138885/" }
  92. ],
  93. authors: [
  94. "little-big-x110",
  95. "helisa-adopts",
  96. "chesta"
  97. ],
  98. owners: [
  99. "little-big-x110"
  100. ]
  101. },
  102. {
  103. prefix: "./media/characters/andy/",
  104. files: [
  105. { name: "front.svg", source: null }
  106. ],
  107. authors: [
  108. "cardboardhead"
  109. ],
  110. owners: [
  111. ]
  112. },
  113. {
  114. prefix: "./media/characters/angelpatamon/",
  115. files: [
  116. { name: "front.svg", source: "http://www.furaffinity.net/view/26475369/" }
  117. ],
  118. authors: [
  119. "mallowchu"
  120. ]
  121. },
  122. {
  123. prefix: "./media/characters/appledectomy/",
  124. files: [
  125. { name: "front.svg", source: "https://www.furaffinity.net/view/33002197/" }
  126. ],
  127. authors: [
  128. "stonerabbit"
  129. ],
  130. owners: [
  131. "appledectomy"
  132. ]
  133. },
  134. {
  135. prefix: "./media/characters/archy/",
  136. files: [
  137. { name: "front.svg", source: "https://www.furaffinity.net/view/17286706/" }
  138. ],
  139. authors: [
  140. "twitch-the-dragon"
  141. ],
  142. owners: [
  143. "archy-d"
  144. ]
  145. },
  146. {
  147. prefix: "./media/characters/asana/",
  148. files: [
  149. { name: "front.svg", source: "https://www.furaffinity.net/view/35087729/" },
  150. { name: "back.svg", source: "https://www.furaffinity.net/view/35087729/" },
  151. ],
  152. authors: [
  153. "silverwingink"
  154. ],
  155. owners: [
  156. "aviraptia"
  157. ]
  158. },
  159. {
  160. prefix: "./media/characters/asana/",
  161. files: [
  162. { name: "front.svg", source: "https://www.furaffinity.net/view/35087729/" },
  163. { name: "back.svg", source: "https://www.furaffinity.net/view/35087729/" },
  164. ],
  165. authors: [
  166. "silverwingink"
  167. ],
  168. owners: [
  169. "aviraptia"
  170. ]
  171. },
  172. {
  173. prefix: "./media/characters/asana-mech/",
  174. files: [
  175. { name: "side.svg", source: null }
  176. ],
  177. authors: [
  178. "ashtrek"
  179. ],
  180. owners: [
  181. "aviraptia"
  182. ]
  183. },
  184. {
  185. prefix: "./media/characters/ashtrek/",
  186. files: [
  187. { name: "front.svg", source: null },
  188. { name: "front-armor.svg", source: null },
  189. ],
  190. authors: [
  191. "silverwingink"
  192. ],
  193. owners: [
  194. "ashtrek"
  195. ]
  196. },
  197. {
  198. prefix: "./media/characters/beherit/",
  199. files: [
  200. { name: "front.svg", source: null }
  201. ],
  202. authors: [
  203. "muzz",
  204. ],
  205. owners: [
  206. "beherit"
  207. ]
  208. },
  209. {
  210. prefix: "./media/characters/berri/",
  211. files: [
  212. { name: "front.svg", source: "https://www.furaffinity.net/view/34510917/" }
  213. ],
  214. authors: [
  215. "lynxsprout",
  216. "sugarbeans"
  217. ],
  218. owners: [
  219. "little-big-x110"
  220. ]
  221. },
  222. {
  223. prefix: "./media/characters/blake/",
  224. files: [
  225. { name: "side.svg", source: "https://www.furaffinity.net/view/30676178/" },
  226. { name: "crouched.svg", source: "https://www.furaffinity.net/view/30676178/" },
  227. { name: "bent.svg", source: "https://www.furaffinity.net/view/30676178/" },
  228. ],
  229. authors: [
  230. "zyraxus"
  231. ],
  232. owners: [
  233. "kurrikage"
  234. ]
  235. },
  236. {
  237. prefix: "./media/characters/cibus/",
  238. files: [
  239. { name: "side.svg", source: "https://www.furaffinity.net/view/15534343/" }
  240. ],
  241. authors: [
  242. "jaydom"
  243. ],
  244. owners: [
  245. "movler"
  246. ]
  247. },
  248. {
  249. prefix: "./media/characters/dr-clay/",
  250. files: [
  251. { name: "front.svg", source: "https://www.furaffinity.net/view/15534343/" },
  252. { name: "front-clothed.svg", source: "https://www.furaffinity.net/view/15534343/" }
  253. ],
  254. authors: [
  255. "wonderball"
  256. ],
  257. owners: [
  258. "little-big-x110"
  259. ]
  260. },
  261. {
  262. prefix: "./media/characters/everett/",
  263. files: [
  264. { name: "front.svg", source: null }
  265. ],
  266. authors: [
  267. "beherit",
  268. ],
  269. owners: [
  270. "beherit"
  271. ]
  272. },
  273. {
  274. prefix: "./media/characters/gemini/",
  275. files: [
  276. { name: "front.svg", source: "https://www.furaffinity.net/view/31363584/" },
  277. { name: "back.svg", source: "https://www.furaffinity.net/view/31363584/" },
  278. ],
  279. authors: [
  280. "rebonica"
  281. ],
  282. owners: [
  283. "geminimacro"
  284. ]
  285. },
  286. {
  287. prefix: "./media/characters/gemini/",
  288. files: [
  289. { name: "kneeling.svg", source: "https://www.furaffinity.net/view/31295122/" },
  290. ],
  291. authors: [
  292. "furrypur"
  293. ],
  294. owners: [
  295. "geminimacro"
  296. ]
  297. },
  298. {
  299. prefix: "./media/characters/jaro/",
  300. files: [
  301. { name: "front.svg", source: "https://www.furaffinity.net/view/26084387/" },
  302. { name: "back.svg", source: "https://www.furaffinity.net/view/26084387/" }
  303. ],
  304. authors: [
  305. "mizumisensei"
  306. ],
  307. owners: [
  308. "jaro-the-dragon"
  309. ]
  310. },
  311. {
  312. prefix: "./media/characters/juno/",
  313. files: [
  314. { name: "front.svg", source: "https://toyhou.se/2991942.juno#16906063" },
  315. ],
  316. authors: [
  317. "gaily"
  318. ],
  319. owners: [
  320. "little-big-x110"
  321. ]
  322. },
  323. {
  324. prefix: "./media/characters/lexi/",
  325. files: [
  326. { name: "front.svg", source: "https://www.furaffinity.net/view/32187352/" }
  327. ],
  328. authors: [
  329. ],
  330. owners: [
  331. "little-big-x110"
  332. ]
  333. },
  334. {
  335. prefix: "./media/characters/malfressa/",
  336. files: [
  337. { name: "side.svg", source: "https://www.furaffinity.net/view/25377262/" },
  338. { name: "feral.svg", source: "https://www.furaffinity.net/view/25377262/" }
  339. ],
  340. authors: [
  341. "d-eath-tail"
  342. ],
  343. owners: [
  344. "scareye"
  345. ]
  346. },
  347. {
  348. prefix: "./media/characters/malfressa/",
  349. files: [
  350. { name: "walking.svg", source: "https://www.furaffinity.net/view/23877052/" }
  351. ],
  352. authors: [
  353. "kerneldecoy"
  354. ],
  355. owners: [
  356. "scareye"
  357. ]
  358. },
  359. {
  360. prefix: "./media/characters/martin/",
  361. files: [
  362. { name: "front.svg", source: "https://www.furaffinity.net/view/30066999" }
  363. ],
  364. authors: [
  365. "little-big-x110"
  366. ],
  367. owners: [
  368. "little-big-x110"
  369. ]
  370. },
  371. {
  372. prefix: "./media/characters/nibbles/",
  373. files: [
  374. { name: "front.svg", source: "https://www.furaffinity.net/view/22964778/" },
  375. { name: "side.svg", source: "https://www.furaffinity.net/view/22964778/" },
  376. ],
  377. authors: [
  378. "dragga"
  379. ],
  380. owners: [
  381. "movler"
  382. ]
  383. },
  384. {
  385. prefix: "./media/characters/piper/",
  386. files: [
  387. { name: "front.svg", source: "https://www.furaffinity.net/view/22964778/" }
  388. ],
  389. authors: [
  390. "brit-bork"
  391. ],
  392. owners: [
  393. "flyhar"
  394. ]
  395. },
  396. {
  397. prefix: "./media/characters/rikky/",
  398. files: [
  399. { name: "side.svg", source: null }
  400. ],
  401. authors: [
  402. "ethan64"
  403. ],
  404. owners: [
  405. "quake-yote"
  406. ]
  407. },
  408. {
  409. prefix: "./media/characters/rogue/",
  410. files: [
  411. { name: "front.svg", source: "http://rogue.macrophile.com/ken" }
  412. ],
  413. authors: [
  414. "cougr"
  415. ],
  416. owners: [
  417. "rogue"
  418. ]
  419. },
  420. {
  421. prefix: "./media/characters/samantha/",
  422. files: [
  423. { name: "front.svg", source: "https://www.furaffinity.net/view/31077914/" },
  424. { name: "front-clothed.svg", source: "https://www.furaffinity.net/view/31077914/" },
  425. { name: "back.svg", source: "https://www.furaffinity.net/view/31077914/" },
  426. ],
  427. authors: [
  428. "wonderball"
  429. ],
  430. owners: [
  431. "little-big-x110"
  432. ]
  433. },
  434. {
  435. prefix: "./media/characters/surgo/",
  436. files: [
  437. { name: "front.svg", source: "https://www.furaffinity.net/view/33348481/" },
  438. { name: "back.svg", source: "https://www.furaffinity.net/view/33348481/" },
  439. { name: "laying.svg", source: "https://www.furaffinity.net/view/33348481/" },
  440. ],
  441. authors: [
  442. "gaiawolfess",
  443. "malakhael"
  444. ],
  445. owners: [
  446. "movler"
  447. ]
  448. },
  449. {
  450. prefix: "./media/characters/tiberius/",
  451. files: [
  452. { name: "front.svg", source: "https://www.furaffinity.net/view/34977812/" },
  453. { name: "back.svg", source: "https://www.furaffinity.net/view/34977812/" }
  454. ],
  455. authors: [
  456. "rebonica"
  457. ],
  458. owners: [
  459. "movler"
  460. ]
  461. },
  462. {
  463. prefix: "./media/characters/vemus/",
  464. files: [
  465. { name: "front.svg", source: "https://www.furaffinity.net/view/31833589/" }
  466. ],
  467. authors: [
  468. "eda"
  469. ],
  470. owners: [
  471. "vemus"
  472. ]
  473. },
  474. {
  475. prefix: "./media/characters/wyvern-ripsnarl/",
  476. files: [
  477. { name: "front.svg", source: "https://www.furaffinity.net/view/15418876/" }
  478. ],
  479. authors: [
  480. "teaselbone"
  481. ],
  482. owners: [
  483. "lobo-raptor-lo"
  484. ]
  485. },
  486. {
  487. prefix: "./media/characters/",
  488. files: [
  489. { name: "", source: "" }
  490. ],
  491. authors: [
  492. ]
  493. },
  494. {
  495. prefix: "./media/objects/humans/",
  496. files: [
  497. { name: "woman-1.svg", source: "https://commons.wikimedia.org/wiki/File:1Silhouette_Female.svg" }
  498. ],
  499. authors: [
  500. "phil-bronnery",
  501. "beao"
  502. ]
  503. },
  504. {
  505. prefix: "./media/objects/humans/",
  506. files: [
  507. { name: "man-1.svg", source: "https://commons.wikimedia.org/wiki/File:Silhouette.svg" }
  508. ],
  509. authors: [
  510. ]
  511. },
  512. {
  513. prefix: "./media/vehicles/",
  514. files: [
  515. { name: "titanic.svg", source: "https://creazilla.com/nodes/873-titanic-silhouette" },
  516. { name: "vertical-titanic.svg", source: "https://creazilla.com/nodes/873-titanic-silhouette" }
  517. ],
  518. authors: [
  519. ]
  520. },
  521. {
  522. prefix: "./media/vehicles/",
  523. files: [
  524. { name: "18-wheeler.svg", source: "https://commons.wikimedia.org/wiki/File:Conventional_18-wheeler_truck_diagram.svg" },
  525. { name: "18-wheeler-vertical.svg", source: "https://commons.wikimedia.org/wiki/File:Conventional_18-wheeler_truck_diagram.svg" }
  526. ],
  527. authors: [
  528. "h-padleckas"
  529. ]
  530. },
  531. ],
  532. people: {
  533. "appledectomy": {
  534. name: "Appledectomy",
  535. url: "https://www.furaffinity.net/user/appledectomy"
  536. },
  537. "archy-d": {
  538. name: "ArchyD",
  539. url: "https://www.furaffinity.net/user/ArchyD"
  540. },
  541. "ashtrek": {
  542. name: "Ashtrek",
  543. url: "https://www.furaffinity.net/user/ashtrek/"
  544. },
  545. "aviraptia": {
  546. name: "Aviraptia",
  547. url: "https://www.furaffinity.net/user/aviraptia/"
  548. },
  549. "beao": {
  550. name: "Beao",
  551. url: "https://commons.wikimedia.org/wiki/User:Beao"
  552. },
  553. "beherit": {
  554. name: "Beherit",
  555. url: "https://www.furaffinity.net/user/beherit/"
  556. },
  557. "brit-bork": {
  558. name: "Koijot",
  559. url: "https://twitter.com/Brit_Bork",
  560. },
  561. "cardboardhead": {
  562. name: "cardboardhead",
  563. url: "https://twitter.com/cardboardhead"
  564. },
  565. "chemicalcrux": {
  566. name: "chemicalcrux",
  567. url: "https://www.furaffinity.net/user/chemicalcrux"
  568. },
  569. "chesta": {
  570. name: "Chesta",
  571. url: "https://www.furaffinity.net/user/chesta"
  572. },
  573. "clown-grin": {
  574. name: "clown-grin",
  575. url: "https://www.furaffinity.net/user/clown-grin"
  576. },
  577. "cougr": {
  578. name: "Cougr",
  579. url: "https://www.furaffinity.net/user/cougr"
  580. },
  581. "d-eath-tail": {
  582. name: "Deathy",
  583. url: "https://www.furaffinity.net/user/d-eath-tail"
  584. },
  585. "Dialuca01": {
  586. name: "Dialuca",
  587. url: "https://www.furaffinity.net/user/dialuca01"
  588. },
  589. "dragga": {
  590. name: "Dragga",
  591. url: "https://www.furaffinity.net/user/dragga"
  592. },
  593. "eda": {
  594. name: "Eda",
  595. url: "https://www.furaffinity.net/user/eda/"
  596. },
  597. "ethan64": {
  598. name: "Ethan64",
  599. url: "https://www.furaffinity.net/user/ethan64/"
  600. },
  601. "flyhar": {
  602. name: "Flyhar",
  603. url: "https://www.furaffinity.net/user/flyfeline/"
  604. },
  605. "furrypur": {
  606. name: "FurryPur",
  607. url: "https://www.furaffinity.net/user/furrypur/"
  608. },
  609. "gaiawolfess": {
  610. name: "Gaiawolfess",
  611. url: "https://www.furaffinity.net/user/gaiawolfess"
  612. },
  613. "gaily": {
  614. name: "Gaily",
  615. url: "https://www.furaffinity.net/user/gaily/"
  616. },
  617. "geminimacro": {
  618. name: "geminimacro",
  619. url: "https://www.furaffinity.net/user/lajay"
  620. },
  621. "h-padleckas": {
  622. name: "H. Padleckas",
  623. url: "https://commons.wikimedia.org/wiki/User:H_Padleckas"
  624. },
  625. "helisa-adopts": {
  626. name: "Helisa",
  627. url: "https://www.furaffinity.net/user/HelisaAdopts"
  628. },
  629. "jaro-the-dragon": {
  630. name: "Jaro",
  631. url: "https://www.furaffinity.net/user/jarothedragon/"
  632. },
  633. "jaydom": {
  634. name: "Jaydom",
  635. url: "https://www.furaffinity.net/user/jaydom"
  636. },
  637. "just-a-little-mixed-up": {
  638. name: "just-a-little-mixed-up",
  639. url: "https://www.furaffinity.net/user/just-a-little-mixed-up"
  640. },
  641. "kerneldecoy": {
  642. name: "Kernel Decoy",
  643. url: "https://www.furaffinity.net/user/kerneldecoy/"
  644. },
  645. "kurrikage": {
  646. name: "Kurrikage",
  647. url: "https://www.furaffinity.net/user/kurrikage/"
  648. },
  649. "labratkuma": {
  650. name: "labratkuma",
  651. url: "https://www.furaffinity.net/user/labratkuma"
  652. },
  653. "little-big-x110": {
  654. name: "LittleBig",
  655. url: "https://www.furaffinity.net/user/LittlebigX110"
  656. },
  657. "lobo-raptor-lo": {
  658. name: "LoboRaptorLo",
  659. url: "https://www.furaffinity.net/user/loboraptorlo/"
  660. },
  661. "lynxsprout": {
  662. name: "Lynxsprout",
  663. url: "https://lynxsprout.carrd.co/"
  664. },
  665. "malakhael": {
  666. name: "Malakhael",
  667. url: "https://www.furaffinity.net/user/malakhael"
  668. },
  669. "mallowchu": {
  670. name: "Mallowchu",
  671. url: "https://www.furaffinity.net/user/mallowchu"
  672. },
  673. "mizumisensei": {
  674. name: "Mizumisensei",
  675. url: "https://twitter.com/mizumisensei"
  676. },
  677. "movler": {
  678. name: "Movler",
  679. url: "https://www.furaffinity.net/user/movler/"
  680. },
  681. "muzz": {
  682. name: "Muzz",
  683. url: "https://www.furaffinity.net/user/muzz/"
  684. },
  685. "oselotti": {
  686. name: "Oselotti",
  687. url: "https://www.furaffinity.net/user/oselotti"
  688. },
  689. "phil-bronnery": {
  690. name: "Phil Bronnery",
  691. url: "https://www.flickr.com/people/27919241@N02"
  692. },
  693. "quake-yote": {
  694. name: "Quake Yote",
  695. url: "https://www.furaffinity.net/user/rokossovskiy"
  696. },
  697. "rebonica": {
  698. name: "Rebonica",
  699. url: "https://www.furaffinity.net/user/rebonica"
  700. },
  701. "rogue": {
  702. name: "Rogue Megawolf",
  703. url: "https://twitter.com/roguemegawolf"
  704. },
  705. "scareye": {
  706. name: "Scareye",
  707. url: "https://www.furaffinity.net/user/scareye/"
  708. },
  709. "silverwingink": {
  710. name: "silverwingink",
  711. url: "https://www.furaffinity.net/gallery/silverwingink/"
  712. },
  713. "spyropurple": {
  714. name: "spyropurple",
  715. url: "https://www.furaffinity.net/user/spyropurple/"
  716. },
  717. "stonerabbit": {
  718. name: "stonerabbit",
  719. url: "https://www.furaffinity.net/user/stonerabbit/"
  720. },
  721. "sugarbeans": {
  722. name: "sugarbeans",
  723. url: "https://www.furaffinity.net/user/sugarbeans/"
  724. },
  725. "teaselbone": {
  726. name: "Teaselbone",
  727. url: "https://www.furaffinity.net/user/teaselbone/"
  728. },
  729. "twitch-the-dragon": {
  730. name: "Twitch",
  731. url: "https://www.furaffinity.net/user/twitchthedragon/"
  732. },
  733. "vemus": {
  734. name: "vemus",
  735. url: "https://www.furaffinity.net/user/vemus"
  736. },
  737. "wonderball": {
  738. name: "Wonderball",
  739. url: "https://www.furaffinity.net/user/wonderball"
  740. },
  741. "zyraxus": {
  742. name: "Zyraxus",
  743. url: "https://www.furaffinity.net/user/zyraxus"
  744. }
  745. }
  746. }
  747. const attribution = {};
  748. function prepareAttribution() {
  749. attribution["files"] = {};
  750. attributionData.sources.forEach(citation => {
  751. citation.files.forEach(file => {
  752. attribution.files[citation.prefix + file.name] = {
  753. authors: citation.authors,
  754. owners: citation.owners,
  755. source: file.source
  756. }
  757. })
  758. });
  759. }
  760. function authorsOf(file) {
  761. if (attribution.files[file])
  762. return attribution.files[file].authors;
  763. else
  764. return undefined;
  765. }
  766. function authorsOfFull(file) {
  767. if (attribution.files[file]) {
  768. const result = [];
  769. attribution.files[file].authors.forEach(author => {
  770. result.push(attributionData.people[author]);
  771. });
  772. return result;
  773. }
  774. else
  775. return undefined;
  776. }
  777. function ownersOf(file) {
  778. if (attribution.files[file])
  779. return attribution.files[file].owners;
  780. else
  781. return undefined;
  782. }
  783. function ownersOfFull(file) {
  784. if (attribution.files[file]) {
  785. if (attribution.files[file].owners !== undefined) {
  786. const result = [];
  787. attribution.files[file].owners.forEach(owner => {
  788. result.push(attributionData.people[owner]);
  789. });
  790. return result;
  791. } else {
  792. return [];
  793. }
  794. }
  795. else
  796. return undefined;
  797. }
  798. function sourceOf(file) {
  799. if (attribution.files[file])
  800. return attribution.files[file].source;
  801. else
  802. return undefined;
  803. }
  804. prepareAttribution();