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

741 строка
21 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/berri/",
  199. files: [
  200. { name: "front.svg", source: "https://www.furaffinity.net/view/34510917/" }
  201. ],
  202. authors: [
  203. "lynxsprout",
  204. "sugarbeans"
  205. ],
  206. owners: [
  207. "little-big-x110"
  208. ]
  209. },
  210. {
  211. prefix: "./media/characters/blake/",
  212. files: [
  213. { name: "side.svg", source: "https://www.furaffinity.net/view/30676178/" },
  214. { name: "crouched.svg", source: "https://www.furaffinity.net/view/30676178/" },
  215. { name: "bent.svg", source: "https://www.furaffinity.net/view/30676178/" },
  216. ],
  217. authors: [
  218. "zyraxus"
  219. ],
  220. owners: [
  221. "kurrikage"
  222. ]
  223. },
  224. {
  225. prefix: "./media/characters/cibus/",
  226. files: [
  227. { name: "side.svg", source: "https://www.furaffinity.net/view/15534343/" }
  228. ],
  229. authors: [
  230. "jaydom"
  231. ],
  232. owners: [
  233. "movler"
  234. ]
  235. },
  236. {
  237. prefix: "./media/characters/dr-clay/",
  238. files: [
  239. { name: "front.svg", source: "https://www.furaffinity.net/view/15534343/" },
  240. { name: "front-clothed.svg", source: "https://www.furaffinity.net/view/15534343/" }
  241. ],
  242. authors: [
  243. "wonderball"
  244. ],
  245. owners: [
  246. "little-big-x110"
  247. ]
  248. },
  249. {
  250. prefix: "./media/characters/gemini/",
  251. files: [
  252. { name: "front.svg", source: "https://www.furaffinity.net/view/31363584/" },
  253. { name: "back.svg", source: "https://www.furaffinity.net/view/31363584/" },
  254. ],
  255. authors: [
  256. "rebonica"
  257. ],
  258. owners: [
  259. "geminimacro"
  260. ]
  261. },
  262. {
  263. prefix: "./media/characters/gemini/",
  264. files: [
  265. { name: "kneeling.svg", source: "https://www.furaffinity.net/view/31295122/" },
  266. ],
  267. authors: [
  268. "furrypur"
  269. ],
  270. owners: [
  271. "geminimacro"
  272. ]
  273. },
  274. {
  275. prefix: "./media/characters/jaro/",
  276. files: [
  277. { name: "front.svg", source: "https://www.furaffinity.net/view/26084387/" },
  278. { name: "back.svg", source: "https://www.furaffinity.net/view/26084387/" }
  279. ],
  280. authors: [
  281. "mizumisensei"
  282. ],
  283. owners: [
  284. "jaro-the-dragon"
  285. ]
  286. },
  287. {
  288. prefix: "./media/characters/juno/",
  289. files: [
  290. { name: "front.svg", source: "https://toyhou.se/2991942.juno#16906063" },
  291. ],
  292. authors: [
  293. "gaily"
  294. ],
  295. owners: [
  296. "little-big-x110"
  297. ]
  298. },
  299. {
  300. prefix: "./media/characters/lexi/",
  301. files: [
  302. { name: "front.svg", source: "https://www.furaffinity.net/view/32187352/" }
  303. ],
  304. authors: [
  305. ],
  306. owners: [
  307. "little-big-x110"
  308. ]
  309. },
  310. {
  311. prefix: "./media/characters/malfressa/",
  312. files: [
  313. { name: "side.svg", source: "https://www.furaffinity.net/view/25377262/" },
  314. { name: "feral.svg", source: "https://www.furaffinity.net/view/25377262/" }
  315. ],
  316. authors: [
  317. "d-eath-tail"
  318. ],
  319. owners: [
  320. "scareye"
  321. ]
  322. },
  323. {
  324. prefix: "./media/characters/malfressa/",
  325. files: [
  326. { name: "walking.svg", source: "https://www.furaffinity.net/view/23877052/" }
  327. ],
  328. authors: [
  329. "kerneldecoy"
  330. ],
  331. owners: [
  332. "scareye"
  333. ]
  334. },
  335. {
  336. prefix: "./media/characters/martin/",
  337. files: [
  338. { name: "front.svg", source: "https://www.furaffinity.net/view/30066999" }
  339. ],
  340. authors: [
  341. "little-big-x110"
  342. ],
  343. owners: [
  344. "little-big-x110"
  345. ]
  346. },
  347. {
  348. prefix: "./media/characters/nibbles/",
  349. files: [
  350. { name: "front.svg", source: "https://www.furaffinity.net/view/22964778/" },
  351. { name: "side.svg", source: "https://www.furaffinity.net/view/22964778/" },
  352. ],
  353. authors: [
  354. "dragga"
  355. ],
  356. owners: [
  357. "movler"
  358. ]
  359. },
  360. {
  361. prefix: "./media/characters/piper/",
  362. files: [
  363. { name: "front.svg", source: "https://www.furaffinity.net/view/22964778/" }
  364. ],
  365. authors: [
  366. "brit-bork"
  367. ],
  368. owners: [
  369. "flyhar"
  370. ]
  371. },
  372. {
  373. prefix: "./media/characters/rikky/",
  374. files: [
  375. { name: "side.svg", source: null }
  376. ],
  377. authors: [
  378. "ethan64"
  379. ],
  380. owners: [
  381. "quake-yote"
  382. ]
  383. },
  384. {
  385. prefix: "./media/characters/rogue/",
  386. files: [
  387. { name: "front.svg", source: "http://rogue.macrophile.com/ken" }
  388. ],
  389. authors: [
  390. "cougr"
  391. ],
  392. owners: [
  393. "rogue"
  394. ]
  395. },
  396. {
  397. prefix: "./media/characters/samantha/",
  398. files: [
  399. { name: "front.svg", source: "https://www.furaffinity.net/view/31077914/" },
  400. { name: "front-clothed.svg", source: "https://www.furaffinity.net/view/31077914/" },
  401. { name: "back.svg", source: "https://www.furaffinity.net/view/31077914/" },
  402. ],
  403. authors: [
  404. "wonderball"
  405. ],
  406. owners: [
  407. "little-big-x110"
  408. ]
  409. },
  410. {
  411. prefix: "./media/characters/surgo/",
  412. files: [
  413. { name: "front.svg", source: "https://www.furaffinity.net/view/33348481/" },
  414. { name: "back.svg", source: "https://www.furaffinity.net/view/33348481/" },
  415. { name: "laying.svg", source: "https://www.furaffinity.net/view/33348481/" },
  416. ],
  417. authors: [
  418. "gaiawolfess",
  419. "malakhael"
  420. ],
  421. owners: [
  422. "movler"
  423. ]
  424. },
  425. {
  426. prefix: "./media/characters/tiberius/",
  427. files: [
  428. { name: "front.svg", source: "https://www.furaffinity.net/view/34977812/" },
  429. { name: "back.svg", source: "https://www.furaffinity.net/view/34977812/" }
  430. ],
  431. authors: [
  432. "rebonica"
  433. ],
  434. owners: [
  435. "movler"
  436. ]
  437. },
  438. {
  439. prefix: "./media/characters/",
  440. files: [
  441. { name: "", source: "" }
  442. ],
  443. authors: [
  444. ]
  445. },
  446. {
  447. prefix: "./media/objects/humans/",
  448. files: [
  449. { name: "woman-1.svg", source: "https://commons.wikimedia.org/wiki/File:1Silhouette_Female.svg" }
  450. ],
  451. authors: [
  452. "phil-bronnery",
  453. "beao"
  454. ]
  455. },
  456. {
  457. prefix: "./media/objects/humans/",
  458. files: [
  459. { name: "man-1.svg", source: "https://commons.wikimedia.org/wiki/File:Silhouette.svg" }
  460. ],
  461. authors: [
  462. ]
  463. },
  464. {
  465. prefix: "./media/vehicles/",
  466. files: [
  467. { name: "titanic.svg", source: "https://creazilla.com/nodes/873-titanic-silhouette" },
  468. { name: "vertical-titanic.svg", source: "https://creazilla.com/nodes/873-titanic-silhouette" }
  469. ],
  470. authors: [
  471. ]
  472. },
  473. ],
  474. people: {
  475. "appledectomy": {
  476. name: "Appledectomy",
  477. url: "https://www.furaffinity.net/user/appledectomy"
  478. },
  479. "archy-d": {
  480. name: "ArchyD",
  481. url: "https://www.furaffinity.net/user/ArchyD"
  482. },
  483. "ashtrek": {
  484. name: "Ashtrek",
  485. url: "https://www.furaffinity.net/user/ashtrek/"
  486. },
  487. "aviraptia": {
  488. name: "Aviraptia",
  489. url: "https://www.furaffinity.net/user/aviraptia/"
  490. },
  491. "beao": {
  492. name: "Beao",
  493. url: "https://commons.wikimedia.org/wiki/User:Beao"
  494. },
  495. "brit-bork": {
  496. name: "Koijot",
  497. url: "https://twitter.com/Brit_Bork",
  498. },
  499. "cardboardhead": {
  500. name: "cardboardhead",
  501. url: "https://twitter.com/cardboardhead"
  502. },
  503. "chemicalcrux": {
  504. name: "chemicalcrux",
  505. url: "https://www.furaffinity.net/user/chemicalcrux"
  506. },
  507. "chesta": {
  508. name: "Chesta",
  509. url: "https://www.furaffinity.net/user/chesta"
  510. },
  511. "clown-grin": {
  512. name: "clown-grin",
  513. url: "https://www.furaffinity.net/user/clown-grin"
  514. },
  515. "cougr": {
  516. name: "Cougr",
  517. url: "https://www.furaffinity.net/user/cougr"
  518. },
  519. "d-eath-tail": {
  520. name: "Deathy",
  521. url: "https://www.furaffinity.net/user/d-eath-tail"
  522. },
  523. "Dialuca01": {
  524. name: "Dialuca",
  525. url: "https://www.furaffinity.net/user/dialuca01"
  526. },
  527. "dragga": {
  528. name: "Dragga",
  529. url: "https://www.furaffinity.net/user/dragga"
  530. },
  531. "ethan64": {
  532. name: "Ethan64",
  533. url: "https://www.furaffinity.net/user/ethan64/"
  534. },
  535. "flyhar": {
  536. name: "Flyhar",
  537. url: "https://www.furaffinity.net/user/flyfeline/"
  538. },
  539. "furrypur": {
  540. name: "FurryPur",
  541. url: "https://www.furaffinity.net/user/furrypur/"
  542. },
  543. "gaiawolfess": {
  544. name: "Gaiawolfess",
  545. url: "https://www.furaffinity.net/user/gaiawolfess"
  546. },
  547. "gaily": {
  548. name: "Gaily",
  549. url: "https://www.furaffinity.net/user/gaily/"
  550. },
  551. "geminimacro": {
  552. name: "geminimacro",
  553. url: "https://www.furaffinity.net/user/lajay"
  554. },
  555. "helisa-adopts": {
  556. name: "Helisa",
  557. url: "https://www.furaffinity.net/user/HelisaAdopts"
  558. },
  559. "jaro-the-dragon": {
  560. name: "Jaro",
  561. url: "https://www.furaffinity.net/user/jarothedragon/"
  562. },
  563. "jaydom": {
  564. name: "Jaydom",
  565. url: "https://www.furaffinity.net/user/jaydom"
  566. },
  567. "just-a-little-mixed-up": {
  568. name: "just-a-little-mixed-up",
  569. url: "https://www.furaffinity.net/user/just-a-little-mixed-up"
  570. },
  571. "kerneldecoy": {
  572. name: "Kernel Decoy",
  573. url: "https://www.furaffinity.net/user/kerneldecoy/"
  574. },
  575. "kurrikage": {
  576. name: "Kurrikage",
  577. url: "https://www.furaffinity.net/user/kurrikage/"
  578. },
  579. "labratkuma": {
  580. name: "labratkuma",
  581. url: "https://www.furaffinity.net/user/labratkuma"
  582. },
  583. "little-big-x110": {
  584. name: "LittleBig",
  585. url: "https://www.furaffinity.net/user/LittlebigX110"
  586. },
  587. "lynxsprout": {
  588. name: "Lynxsprout",
  589. url: "https://lynxsprout.carrd.co/"
  590. },
  591. "malakhael": {
  592. name: "Malakhael",
  593. url: "https://www.furaffinity.net/user/malakhael"
  594. },
  595. "mallowchu": {
  596. name: "Mallowchu",
  597. url: "https://www.furaffinity.net/user/mallowchu"
  598. },
  599. "mizumisensei": {
  600. name: "Mizumisensei",
  601. url: "https://twitter.com/mizumisensei"
  602. },
  603. "movler": {
  604. name: "Movler",
  605. url: "https://www.furaffinity.net/user/movler/"
  606. },
  607. "oselotti": {
  608. name: "Oselotti",
  609. url: "https://www.furaffinity.net/user/oselotti"
  610. },
  611. "phil-bronnery": {
  612. name: "Phil Bronnery",
  613. url: "https://www.flickr.com/people/27919241@N02"
  614. },
  615. "quake-yote": {
  616. name: "Quake Yote",
  617. url: "https://www.furaffinity.net/user/rokossovskiy"
  618. },
  619. "rebonica": {
  620. name: "Rebonica",
  621. url: "https://www.furaffinity.net/user/rebonica"
  622. },
  623. "rogue": {
  624. name: "Rogue Megawolf",
  625. url: "https://twitter.com/roguemegawolf"
  626. },
  627. "scareye": {
  628. name: "Scareye",
  629. url: "https://www.furaffinity.net/user/scareye/"
  630. },
  631. "silverwingink": {
  632. name: "silverwingink",
  633. url: "https://www.furaffinity.net/gallery/silverwingink/"
  634. },
  635. "spyropurple": {
  636. name: "spyropurple",
  637. url: "https://www.furaffinity.net/user/spyropurple/"
  638. },
  639. "stonerabbit": {
  640. name: "stonerabbit",
  641. url: "https://www.furaffinity.net/user/stonerabbit/"
  642. },
  643. "sugarbeans": {
  644. name: "sugarbeans",
  645. url: "https://www.furaffinity.net/user/sugarbeans/"
  646. },
  647. "twitch-the-dragon": {
  648. name: "Twitch",
  649. url: "https://www.furaffinity.net/user/twitchthedragon/"
  650. },
  651. "wonderball": {
  652. name: "Wonderball",
  653. url: "https://www.furaffinity.net/user/wonderball"
  654. },
  655. "zyraxus": {
  656. name: "Zyraxus",
  657. url: "https://www.furaffinity.net/user/zyraxus"
  658. }
  659. }
  660. }
  661. const attribution = {};
  662. function prepareAttribution() {
  663. attribution["files"] = {};
  664. attributionData.sources.forEach(citation => {
  665. citation.files.forEach(file => {
  666. attribution.files[citation.prefix + file.name] = {
  667. authors: citation.authors,
  668. owners: citation.owners,
  669. source: file.source
  670. }
  671. })
  672. });
  673. }
  674. function authorsOf(file) {
  675. if (attribution.files[file])
  676. return attribution.files[file].authors;
  677. else
  678. return undefined;
  679. }
  680. function authorsOfFull(file) {
  681. if (attribution.files[file]) {
  682. const result = [];
  683. attribution.files[file].authors.forEach(author => {
  684. result.push(attributionData.people[author]);
  685. });
  686. return result;
  687. }
  688. else
  689. return undefined;
  690. }
  691. function ownersOf(file) {
  692. if (attribution.files[file])
  693. return attribution.files[file].owners;
  694. else
  695. return undefined;
  696. }
  697. function ownersOfFull(file) {
  698. if (attribution.files[file]) {
  699. if (attribution.files[file].owners !== undefined) {
  700. const result = [];
  701. attribution.files[file].owners.forEach(owner => {
  702. result.push(attributionData.people[owner]);
  703. });
  704. return result;
  705. } else {
  706. return [];
  707. }
  708. }
  709. else
  710. return undefined;
  711. }
  712. function sourceOf(file) {
  713. if (attribution.files[file])
  714. return attribution.files[file].source;
  715. else
  716. return undefined;
  717. }
  718. prepareAttribution();