Skip to content

Commit 32599d8

Browse files
authored
Switch timetable parsing connection settings from RequireEMS to AllowEMS (#1546)
1 parent b738c23 commit 32599d8

File tree

4 files changed

+14
-5
lines changed

4 files changed

+14
-5
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
- Upgraded to React v19
6262
- Added dependabot group for `react` and `react-dom`
6363
- Switched from Yarn PnP to node-modules to fix issues running tests with Node v20+
64+
- Switched connection for timetable parsing from `RequireEMS` to `AllowEMS`
6465

6566
## [0.6.0] - 2024-06-24
6667

app/Config.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ createReqBody page = object [ "campuses" .= ([] :: [T.Text]),
183183
"page" .= page,
184184
"pageSize" .= (300 :: Int),
185185
"requirementProps" .= ([] :: [T.Text]),
186-
"sessions" .= [T.pack "20249", T.pack "20251", T.pack "20249-20251"],
186+
"sessions" .= [T.pack "20255"],
187187
"timePreferences" .= ([] :: [T.Text])
188188
]
189189

app/WebParsing/UtsgJsonParser.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import Control.Monad.IO.Class (liftIO)
66
import Data.Aeson (FromJSON (parseJSON), decode, encode, withObject, (.!=), (.:), (.:?))
77
import Data.Aeson.Types (parseMaybe)
88
import Data.ByteString.Lazy.Internal (ByteString)
9+
import Data.Default.Class (def)
910
import qualified Data.Text as T
1011
import Database.Persist.Sqlite (SqlPersistM, Update, deleteWhere, entityKey, insert, insertMany_,
1112
selectFirst, upsert, (=.), (==.))
1213
import Database.Tables (EntityField (..), MeetTime (..), Meeting (..), buildTimes)
13-
import Network.HTTP.Conduit (RequestBody (RequestBodyLBS), httpLbs, method, newManager,
14-
parseRequest, requestBody, requestHeaders, responseBody,
15-
tlsManagerSettings)
14+
import Network.Connection (TLSSettings (TLSSettingsSimple))
15+
import Network.HTTP.Conduit (RequestBody (RequestBodyLBS), httpLbs, method, mkManagerSettings,
16+
newManager, parseRequest, requestBody, requestHeaders, responseBody)
17+
import Network.TLS (EMSMode (AllowEMS), Supported (..))
1618

1719
-- | Parse all timetable data.
1820
parseTimetable :: IO ()
@@ -29,7 +31,7 @@ makeRequest pageNum = do
2931
let request' = request {method = "POST", requestBody = RequestBodyLBS $ encode reqBody, requestHeaders = reqHeaders}
3032

3133
-- make the request
32-
manager <- liftIO $ newManager tlsManagerSettings
34+
manager <- liftIO $ newManager $ mkManagerSettings (TLSSettingsSimple False False False (def { supportedExtendedMainSecret = AllowEMS })) Nothing
3335
response <- liftIO $ httpLbs request' manager
3436
return $ responseBody response
3537

courseography.cabal

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ library
4646
bytestring,
4747
Cabal >= 1.16.0,
4848
containers,
49+
crypton-connection,
50+
data-default-class,
4951
directory,
5052
happstack-server,
5153
hlint,
@@ -64,6 +66,7 @@ library
6466
tagsoup,
6567
text,
6668
time,
69+
tls,
6770
transformers,
6871
unordered-containers,
6972
yaml
@@ -191,6 +194,8 @@ executable courseography
191194
bytestring,
192195
conduit,
193196
containers,
197+
crypton-connection,
198+
data-default-class,
194199
diagrams-lib >= 1.3,
195200
diagrams-svg >= 1.3.1,
196201
directory,
@@ -226,6 +231,7 @@ executable courseography
226231
tagsoup,
227232
text,
228233
time,
234+
tls,
229235
transformers,
230236
unordered-containers,
231237
vector,

0 commit comments

Comments
 (0)