less copy protection, more size visualization
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

458 lignes
13 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/andy/",
  77. files: [
  78. { name: "front.svg", source: null }
  79. ],
  80. authors: [
  81. "cardboardhead"
  82. ],
  83. owners: [
  84. ]
  85. },
  86. {
  87. prefix: "./media/characters/angelpatamon/",
  88. files: [
  89. { name: "front.svg", source: "http://www.furaffinity.net/view/26475369/" }
  90. ],
  91. authors: [
  92. "mallowchu"
  93. ]
  94. },
  95. {
  96. prefix: "./media/characters/appledectomy/",
  97. files: [
  98. { name: "front.svg", source: "https://www.furaffinity.net/view/33002197/" }
  99. ],
  100. authors: [
  101. "stonerabbit"
  102. ],
  103. owners: [
  104. "appledectomy"
  105. ]
  106. },
  107. {
  108. prefix: "./media/characters/asana/",
  109. files: [
  110. { name: "front.svg", source: "https://www.furaffinity.net/view/35087729/" },
  111. { name: "back.svg", source: "https://www.furaffinity.net/view/35087729/" },
  112. ],
  113. authors: [
  114. "silverwingink"
  115. ],
  116. owners: [
  117. "aviraptia"
  118. ]
  119. },
  120. {
  121. prefix: "./media/characters/asana/",
  122. files: [
  123. { name: "front.svg", source: "https://www.furaffinity.net/view/35087729/" },
  124. { name: "back.svg", source: "https://www.furaffinity.net/view/35087729/" },
  125. ],
  126. authors: [
  127. "silverwingink"
  128. ],
  129. owners: [
  130. "aviraptia"
  131. ]
  132. },
  133. {
  134. prefix: "./media/characters/asana-mech/",
  135. files: [
  136. { name: "side.svg", source: null }
  137. ],
  138. authors: [
  139. "ashtrek"
  140. ],
  141. owners: [
  142. "aviraptia"
  143. ]
  144. },
  145. {
  146. prefix: "./media/characters/ashtrek/",
  147. files: [
  148. { name: "front.svg", source: null },
  149. { name: "front-armor.svg", source: null },
  150. ],
  151. authors: [
  152. "silverwingink"
  153. ],
  154. owners: [
  155. "ashtrek"
  156. ]
  157. },
  158. {
  159. prefix: "./media/characters/blake/",
  160. files: [
  161. { name: "side.svg", source: "https://www.furaffinity.net/view/30676178/" },
  162. { name: "crouched.svg", source: "https://www.furaffinity.net/view/30676178/" },
  163. { name: "bent.svg", source: "https://www.furaffinity.net/view/30676178/" },
  164. ],
  165. authors: [
  166. "zyraxus"
  167. ],
  168. owners: [
  169. "kurrikage"
  170. ]
  171. },
  172. {
  173. prefix: "./media/characters/cibus/",
  174. files: [
  175. { name: "side.svg", source: "https://www.furaffinity.net/view/15534343/" }
  176. ],
  177. authors: [
  178. "jaydom"
  179. ],
  180. owners: [
  181. "movler"
  182. ]
  183. },
  184. {
  185. prefix: "./media/characters/malfressa/",
  186. files: [
  187. { name: "side.svg", source: "https://www.furaffinity.net/view/25377262/" },
  188. { name: "feral.svg", source: "https://www.furaffinity.net/view/25377262/" }
  189. ],
  190. authors: [
  191. "d-eath-tail"
  192. ],
  193. owners: [
  194. "scareye"
  195. ]
  196. },
  197. {
  198. prefix: "./media/characters/malfressa/",
  199. files: [
  200. { name: "walking.svg", source: "https://www.furaffinity.net/view/23877052/" }
  201. ],
  202. authors: [
  203. "kerneldecoy"
  204. ],
  205. owners: [
  206. "scareye"
  207. ]
  208. },
  209. {
  210. prefix: "./media/characters/nibbles/",
  211. files: [
  212. { name: "front.svg", source: "https://www.furaffinity.net/view/22964778/" },
  213. { name: "side.svg", source: "https://www.furaffinity.net/view/22964778/" },
  214. ],
  215. authors: [
  216. "dragga"
  217. ],
  218. owners: [
  219. "movler"
  220. ]
  221. },
  222. {
  223. prefix: "./media/characters/rikky/",
  224. files: [
  225. { name: "side.svg", source: null }
  226. ],
  227. authors: [
  228. "ethan64"
  229. ],
  230. owners: [
  231. "quake-yote"
  232. ]
  233. },
  234. {
  235. prefix: "./media/characters/surgo/",
  236. files: [
  237. { name: "front.svg", source: "https://www.furaffinity.net/view/33348481/" },
  238. { name: "back.svg", source: "https://www.furaffinity.net/view/33348481/" },
  239. { name: "laying.svg", source: "https://www.furaffinity.net/view/33348481/" },
  240. ],
  241. authors: [
  242. "gaiawolfess",
  243. "malakhael"
  244. ],
  245. owners: [
  246. "movler"
  247. ]
  248. },
  249. {
  250. prefix: "./media/characters/tiberius/",
  251. files: [
  252. { name: "front.svg", source: "https://www.furaffinity.net/view/34977812/" },
  253. { name: "back.svg", source: "https://www.furaffinity.net/view/34977812/" }
  254. ],
  255. authors: [
  256. "Rebonica"
  257. ],
  258. owners: [
  259. "movler"
  260. ]
  261. },
  262. {
  263. prefix: "./media/characters/",
  264. files: [
  265. { name: "", source: "" }
  266. ],
  267. authors: [
  268. ]
  269. }
  270. ],
  271. people: {
  272. "appledectomy": {
  273. name: "Appledectomy",
  274. url: "https://www.furaffinity.net/user/appledectomy"
  275. },
  276. "ashtrek": {
  277. name: "Ashtrek",
  278. url: "https://www.furaffinity.net/user/ashtrek/"
  279. },
  280. "aviraptia": {
  281. name: "Aviraptia",
  282. url: "https://www.furaffinity.net/user/aviraptia/"
  283. },
  284. "cardboardhead": {
  285. name: "cardboardhead",
  286. url: "https://twitter.com/cardboardhead"
  287. },
  288. "chemicalcrux": {
  289. name: "chemicalcrux",
  290. url: "https://www.furaffinity.net/user/chemicalcrux"
  291. },
  292. "clown-grin": {
  293. name: "clown-grin",
  294. url: "https://www.furaffinity.net/user/clown-grin"
  295. },
  296. "d-eath-tail": {
  297. name: "Deathy",
  298. url: "https://www.furaffinity.net/user/d-eath-tail"
  299. },
  300. "Dialuca01": {
  301. name: "Dialuca",
  302. url: "https://www.furaffinity.net/user/dialuca01"
  303. },
  304. "dragga": {
  305. name: "Dragga",
  306. url: "https://www.furaffinity.net/user/dragga"
  307. },
  308. "ethan64": {
  309. name: "Ethan64",
  310. url: "https://www.furaffinity.net/user/ethan64/"
  311. },
  312. "gaiawolfess": {
  313. name: "Gaiawolfess",
  314. url: "https://www.furaffinity.net/user/gaiawolfess"
  315. },
  316. "jaydom": {
  317. name: "Jaydom",
  318. url: "https://www.furaffinity.net/user/jaydom"
  319. },
  320. "just-a-little-mixed-up": {
  321. name: "just-a-little-mixed-up",
  322. url: "https://www.furaffinity.net/user/just-a-little-mixed-up"
  323. },
  324. "kerneldecoy": {
  325. name: "Kernel Decoy",
  326. url: "https://www.furaffinity.net/user/kerneldecoy/"
  327. },
  328. "kurrikage": {
  329. name: "Kurrikage",
  330. url: "https://www.furaffinity.net/user/kurrikage/"
  331. },
  332. "labratkuma": {
  333. name: "labratkuma",
  334. url: "https://www.furaffinity.net/user/labratkuma"
  335. },
  336. "malakhael": {
  337. name: "Malakhael",
  338. url: "https://www.furaffinity.net/user/malakhael"
  339. },
  340. "mallowchu": {
  341. name: "Mallowchu",
  342. url: "https://www.furaffinity.net/user/mallowchu"
  343. },
  344. "movler": {
  345. name: "Movler",
  346. url: "https://www.furaffinity.net/user/movler/"
  347. },
  348. "oselotti": {
  349. name: "Oselotti",
  350. url: "https://www.furaffinity.net/user/oselotti"
  351. },
  352. "quake-yote": {
  353. name: "Quake Yote",
  354. url: "https://www.furaffinity.net/user/rokossovskiy"
  355. },
  356. "Rebonica": {
  357. name: "Rebonica",
  358. url: "https://www.furaffinity.net/user/rebonica"
  359. },
  360. "scareye": {
  361. name: "Scareye",
  362. url: "https://www.furaffinity.net/user/scareye/"
  363. },
  364. "silverwingink": {
  365. name: "silverwingink",
  366. url: "https://www.furaffinity.net/gallery/silverwingink/"
  367. },
  368. "spyropurple": {
  369. name: "spyropurple",
  370. url: "https://www.furaffinity.net/user/spyropurple/"
  371. },
  372. "stonerabbit": {
  373. name: "stonerabbit",
  374. url: "https://www.furaffinity.net/user/stonerabbit/"
  375. },
  376. "zyraxus": {
  377. name: "Zyraxus",
  378. url: "https://www.furaffinity.net/user/zyraxus"
  379. }
  380. }
  381. }
  382. const attribution = {};
  383. function prepareAttribution() {
  384. attribution["files"] = {};
  385. attributionData.sources.forEach(citation => {
  386. citation.files.forEach(file => {
  387. attribution.files[citation.prefix + file.name] = {
  388. authors: citation.authors,
  389. owners: citation.owners,
  390. source: file.source
  391. }
  392. })
  393. });
  394. }
  395. function authorsOf(file) {
  396. if (attribution.files[file])
  397. return attribution.files[file].authors;
  398. else
  399. return undefined;
  400. }
  401. function authorsOfFull(file) {
  402. if (attribution.files[file]) {
  403. const result = [];
  404. attribution.files[file].authors.forEach(author => {
  405. result.push(attributionData.people[author]);
  406. });
  407. return result;
  408. }
  409. else
  410. return undefined;
  411. }
  412. function ownersOf(file) {
  413. if (attribution.files[file])
  414. return attribution.files[file].owners;
  415. else
  416. return undefined;
  417. }
  418. function ownersOfFull(file) {
  419. if (attribution.files[file]) {
  420. if (attribution.files[file].owners !== undefined) {
  421. const result = [];
  422. attribution.files[file].owners.forEach(owner => {
  423. result.push(attributionData.people[owner]);
  424. });
  425. return result;
  426. } else {
  427. return [];
  428. }
  429. }
  430. else
  431. return undefined;
  432. }
  433. function sourceOf(file) {
  434. if (attribution.files[file])
  435. return attribution.files[file].source;
  436. else
  437. return undefined;
  438. }
  439. prepareAttribution();