mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update caching headers
This commit is contained in:
parent
087c2139c6
commit
4201f1065d
10 changed files with 118 additions and 165 deletions
|
@ -1,4 +1,4 @@
|
|||
define([], function () {
|
||||
define(['events'], function (events) {
|
||||
'use strict';
|
||||
|
||||
// LinkParser
|
||||
|
@ -42,52 +42,6 @@
|
|||
+ "(?:\\:(?:[a-z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-f0-9]{2})){1,25})?" // followed by optional password (: + 1-25 normal or url escaped characters)
|
||||
+ "\\@)";
|
||||
|
||||
var hostnames = "(?:[a-z0-9][a-z0-9\\-]{0,64}\\.)+"; // named host
|
||||
var unknownTLDs = "(?:[a-z]{2,})";
|
||||
|
||||
// unicode regexp isn't really supported in JS. It can be emulated with XRegExp
|
||||
// <http://xregexp.com/> but that creates a pretty big performance hit that
|
||||
// is very noticable on mobile devices. We'll add an option in the future to
|
||||
// support them.
|
||||
var XRegExp_hostnames = "(?:[\\p{L}0-9][\\p{L}0-9\\-]{0,64}\\.)+"; // named host
|
||||
var XRegExp_unknownTLDs = "(?:[\\p{L}]{2,})"; // top level domain
|
||||
|
||||
// strings that start with one of these are more likely to be URLs
|
||||
var knownSubdomains = "(?:(?:www|ftp)\\.)";
|
||||
|
||||
// update from here when needed: https://data.iana.org/TLD/tlds-alpha-by-domain.txt
|
||||
var knownTLDs = "(?:"
|
||||
+ "A[CDEFGILMNOQRSTUWXZ]|ACADEMY|ACCOUNTANTS|ACTOR|AERO|AGENCY|AIRFORCE|ARCHI|ARPA|ASIA|ASSOCIATES|AUDIO|AUTOS|AXA"
|
||||
+ "|B[ABDEFGHIJMNORSTVWYZ]|BAR|BARGAINS|BAYERN|BEER|BERLIN|BEST|BID|BIKE|BIZ|BLACK|BLACKFRIDAY|BLUE|BOUTIQUE|BUILD|BUILDERS|BUZZ"
|
||||
+ "|C[ACDFGHIKLMNORUVWXYZ]|CAB|CAMERA|CAMP|CAPITAL|CARDS|CARE|CAREER|CAREERS|CASH|CAT|CATERING|CENTER|CEO|CHEAP|CHRISTMAS|CHURCH|CITIC|CLAIMS|CLEANING|CLINIC|CLOTHING|CLUB|CODES|COFFEE|COLLEGE|COLOGNE|COM|COMMUNITY|COMPANYCOMPUTER|CONDOS|CONSTRUCTION|CONSULTING|CONTRACTORS|COOKING|COOL|COOP|COUNTRY|CREDIT|CREDITCARD|CRUISES"
|
||||
+ "|D[EJKMOZ]|DANCE|DATING|DEMOCRAT|DENTAL|DESI|DIAMONDS|DIGITAL|DIRECTORY|DISCOUNT|DNP|DOMAINS"
|
||||
+ "|E[CEGRSTU]|EDU|EDUCATION|EMAIL|ENGINEERING|ENTERPRISES|EQUIPMENT|ESTATE|EUS|EVENTS|EXCHANGE|EXPERT|EXPOSED"
|
||||
+ "|F[IJKMOR]|FAIL|FARM|FEEDBACK|FINANCE|FINANCIAL|FISH|FISHING|FITNESS|FLIGHTS|FLORIST|FOO|FOUNDATION|FROGANS|FUND|FURNITURE|FUTBOL"
|
||||
+ "|G[ABDEFGHILMNPQRSTUWY]|GAL|GALLERY|GIFT|GLASS|GLOBO|GMO|GOP|GOV|GRAPHICS|GRATIS|GRIPE|GUIDE|GUITARS|GURU"
|
||||
+ "|H[KMNRTU]|HAUS|HIPHOP|HOLDINGS|HOLIDAY|HOMES|HORSE|HOUSE"
|
||||
+ "|I[DELMNOQRST]|IMMOBILIEN|INDUSTRIES|INFO|INK|INSTITUTE|INSURE|INT|INTERNATIONAL|INVESTMENTS"
|
||||
+ "|J[EMOP]|JETZT|JOBS|JUEGOS"
|
||||
+ "|K[EGHIMNPRWYZ]|KAUFEN|KIM|KITCHEN|KIWI|KOELN|KRED"
|
||||
+ "|L[ABCIKRSTUVY]|LAND|LEASE|LIFE|LIGHTING|LIMITED|LIMO|LINK|LOANS|LONDON|LUXE|LUXURY"
|
||||
+ "|M[ACDEGHKLMNOPQRSTUVWXYZ]|MAISON|MANAGEMENT|MANGO|MARKETING|MEDIA|MEET|MENU|MIAMI|MIL|MOBI|MODA|MOE|MONASH|MOSCOW|MOTORCYCLES|MUSEUM"
|
||||
+ "|N[ACEFGILOPRUZ]|NAGOYA|NAME|NET|NEUSTAR|NINJA|NYC"
|
||||
+ "|O[M]|OKINAWA|ONL|ORG"
|
||||
+ "|P[AEFGHKLMNRSTWY]|PARIS|PARTNERS|PARTS|PHOTO|PHOTOGRAPHY|PHOTOS|PICS|PICTURES|PINK|PLUMBING|POST|PRO|PRODUCTIONS|PROPERTIES|PUB"
|
||||
+ "|Q[A]|QPON|QUEBEC"
|
||||
+ "|R[EOSUW]|RECIPES|RED|REISE|REISEN|REN|RENTALS|REPAIR|REPORT|REST|REVIEWS|RICH|RIO|ROCKS|RODEO|RUHR|RYUKYU"
|
||||
+ "|S[ABCDEGHIJKLMNORTUVXYZ]|SAARLAND|SCHULE|SERVICES|SEXY|SHIKSHA|SHOES|SINGLES|SOCIAL|SOHU|SOLAR|SOLUTIONS|SOY|SUPPLIES|SUPPLY|SUPPORT|SURGERY|SYSTEMS"
|
||||
+ "|T[CDFGHJKLMNOPRTVWZ]|TATTOO|TAX|TECHNOLOGY|TEL|TIENDA|TIPS|TODAY|TOKYO|TOOLS|TOWN|TOYS|TRADE|TRAINING|TRAVEL"
|
||||
+ "|U[AGKSYZ]|UNIVERSITY|UNO"
|
||||
+ "|V[ACEGINU]|VACATIONS|VEGAS|VENTURES|VERSICHERUNG|VIAJES|VILLAS|VISION|VODKA|VOTE|VOTING|VOTO|VOYAGE"
|
||||
+ "|W[FS]|WANG|WATCH|WEBCAM|WED|WIEN|WIKI|WORKS|WTC|WTF"
|
||||
+ "|XXX|XYZ"
|
||||
+ "|Y[ET]|YACHTS|YOKOHAMA"
|
||||
+ "|Z[AMW]|ZONE"
|
||||
// IDN TLDs in both punycode and unicode format
|
||||
+ "|XN--(?:3BST00M|3DS443G|3E0B707E|45BRJ9C|55QW42G|55QX5D|6FRZ82G|6QQ986B3XL|80ADXHKS|80AO21A|80ASEHDB|80ASWG|90A3AC|C1AVG|CG4BKI|CLCHC0EA0B2G2A9GCD|CZR694B|CZRU2D|D1ACJ3B|FIQ228C5HS|FIQ64B|FIQS8S|FIQZ9S|FPCRJ9C3D|FZC2C9E2C|GECRJ9C|H2BRJ9C|I1B6B1A6A2E|IO0A7I|J1AMH|J6W193G|KPRW13D|KPRY57D|L1ACC|LGBBAT1AD8J|MGB9AWBF|MGBA3A4F16A|MGBAAM7A8H|MGBAB2BD|MGBAYH7GPA|MGBBH1A71E|MGBC0A9AZCG|MGBERP4A5D4AR|MGBX4CD0AB|NGBC5AZD|NQV7F|NQV7FS00EMA|O3CW4H|OGBPF8FL|P1AI|PGBS0DH|Q9JYB4C|RHQV96G|S9BRJ9C|SES554G|UNUP4Y|WGBH1C|WGBL6A|XKC2AL3HYE2A|XKC2DL3A5EE0H|YFRO4I67O|YGBI2AMMX|ZFR164B)"
|
||||
+ "|\u0627\u0644\u0627\u0631\u062F\u0646|\u4E2D\u570B|\u4E2D\u56FD|\u0627\u0645\u0627\u0631\u0627\u062A|\u9999\u6E2F|\u0627\u06CC\u0631\u0627\u0646|\u0DBD\u0D82\u0D9A\u0DCF|\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8|\u0645\u0635\u0631|\u0642\u0637\u0631|\u0420\u0424|\u0633\u0648\u0631\u064A\u0629|\u53F0\u7063|\u53F0\u6E7E"
|
||||
+ ")";
|
||||
|
||||
// IPv6 Regex http://forums.intermapper.com/viewtopic.php?t=452
|
||||
// by Dartware, LLC is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License
|
||||
// http://intermapper.com/
|
||||
|
@ -117,45 +71,7 @@
|
|||
// If we have a recognized protocol at the beginning of the URL, we're
|
||||
// more relaxed about what we accept, because we assume the user wants
|
||||
// this to be a URL, and we're not accidentally matching human language
|
||||
+ protocols
|
||||
|
||||
// optional username:password@
|
||||
+ credentials + "?"
|
||||
|
||||
// loose definition of a host name
|
||||
// any valid unicode sequence is ok for domain
|
||||
// this is our failsafe. If we don't recognize a TLD (because new TLDs are
|
||||
// constantly being added) and the host name doesn't start with a common
|
||||
// prefix like www, then this should catch anything that begins with a
|
||||
// valid protocol (above)
|
||||
+ hostnames + unknownTLDs
|
||||
|
||||
// ============================
|
||||
// OR no protocol and a stricter form of a host name, with something that
|
||||
// we recognize as a likely URL. This will hopefully keep us from matching
|
||||
// typos like.this as a URL.
|
||||
+ "|(?!" + protocols + ")"
|
||||
|
||||
// optional username:password@
|
||||
+ credentials + "?"
|
||||
|
||||
+ "(?:"
|
||||
|
||||
// ends with known TLD
|
||||
+ hostnames + knownTLDs
|
||||
|
||||
// OR begins with a known common subdomain
|
||||
+ "|" + knownSubdomains + hostnames + unknownTLDs
|
||||
|
||||
// OR contains a slash after the TLD (very likely a URL, unlikely to exist in common language)
|
||||
+ "|" + hostnames + unknownTLDs + "(?=\\/)" // use a lookahead so we don't pre-match the path below
|
||||
|
||||
+ ")"
|
||||
|
||||
// ============================
|
||||
// OR we'll also accept IPv6 and IPv4 addresses, with or without a protocol, since it's highly
|
||||
// unlikely that these would appear in normal language without being intended as a URL
|
||||
+ "|" + protocols + "?"
|
||||
+ protocols + "?"
|
||||
|
||||
// optional username:password@
|
||||
+ credentials + "?"
|
||||
|
@ -309,8 +225,8 @@
|
|||
return null;
|
||||
}
|
||||
|
||||
Events.on(ConnectionManager, 'localusersignedin', clearCache);
|
||||
Events.on(ConnectionManager, 'localusersignedout', clearCache);
|
||||
events.on(ConnectionManager, 'localusersignedin', clearCache);
|
||||
events.on(ConnectionManager, 'localusersignedout', clearCache);
|
||||
|
||||
return {
|
||||
getServerAddress: getServerAddress
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue